:root { --cp-gold:#f4b72d; --cp-ink:#171a1d; --cp-navy:#15213a; --cp-green:#0f9560; --cp-line:#dde1dc; --cp-muted:#6d746f; }
.astsv-camera-planner-page { background:#eef0ed; }
.astsv-camera-planner-page .entry-header { display:none; }
.astsv-camera-planner-page .entry-content { margin:0; }
.astsv-cp-root { width:100vw; margin-left:calc(50% - 50vw); color:var(--cp-ink); font-family:Inter,Arial,sans-serif; background:#eef0ed; }
.astsv-cp-root * { box-sizing:border-box; }
.astsv-cp-root button,.astsv-cp-root input,.astsv-cp-root select,.astsv-cp-root textarea { font:inherit; }
.astsv-cp-root button { cursor:pointer; }
.astsv-cp-app { min-height:100vh; }
.astsv-cp-header { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:14px 24px; color:#fff; background:var(--cp-navy); border-bottom:4px solid var(--cp-gold); }
.astsv-cp-brand { display:flex; align-items:center; gap:12px; }
.astsv-cp-brand img { width:48px; height:48px; padding:4px; object-fit:contain; background:#fff; border-radius:10px; }
.astsv-cp-brand span,.astsv-cp-brand small,.astsv-cp-brand strong { display:block; }
.astsv-cp-brand small { margin-bottom:2px; color:#cbd3df; font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.astsv-cp-brand strong { font-size:19px; line-height:1.2; }
.astsv-cp-document-actions { display:flex; gap:8px; }
.astsv-cp-document-actions button,.astsv-cp-toolbar button { min-height:40px; padding:9px 13px; color:#303633; font-size:12px; font-weight:800; background:#fff; border:1px solid #d9ddd8; border-radius:8px; }
.astsv-cp-document-actions button { color:#fff; background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.2); }
.astsv-cp-document-actions button:hover { background:rgba(255,255,255,.16); }
.astsv-cp-document-actions button.primary { color:#171a1d; background:var(--cp-gold); border-color:#d99b12; }
.astsv-cp-meta { display:grid; grid-template-columns:1fr 1.35fr 1fr 180px; gap:10px; padding:13px 24px; background:#fff; border-bottom:1px solid var(--cp-line); }
.astsv-cp-meta label,.astsv-cp-editor label { display:block; }
.astsv-cp-meta label span,.astsv-cp-editor label > span { display:block; margin-bottom:5px; color:#727974; font-size:9px; font-weight:850; letter-spacing:.07em; text-transform:uppercase; }
.astsv-cp-meta input,.astsv-cp-editor input,.astsv-cp-editor select,.astsv-cp-editor textarea { width:100%; min-height:37px; padding:8px 9px; color:#202421; background:#fff; border:1px solid #d7dcd7; border-radius:7px; outline:0; }
.astsv-cp-meta input:focus,.astsv-cp-editor input:focus,.astsv-cp-editor select:focus,.astsv-cp-editor textarea:focus { border-color:#c99113; box-shadow:0 0 0 3px rgba(244,183,45,.17); }
.astsv-cp-toolbar { display:flex; align-items:center; gap:7px; padding:10px 24px; overflow-x:auto; background:#f7f8f6; border-bottom:1px solid var(--cp-line); }
.astsv-cp-toolbar button:hover,.astsv-cp-toolbar button.active { background:#fff2c7; border-color:#dda61f; }
.astsv-cp-toolbar button.accent { color:#171a1d; background:var(--cp-gold); border-color:#d99f18; }
.astsv-cp-toolbar .divider { flex:0 0 1px; height:25px; margin:0 3px; background:#d7dbd6; }
.astsv-cp-rotation { display:flex; align-items:center; gap:8px; min-width:255px; padding:0 8px; }
.astsv-cp-rotation span { flex:0 0 auto; color:#6d746f; font-size:10px; font-weight:800; }
.astsv-cp-rotation input { min-width:105px; accent-color:#ce9410; }
.astsv-cp-rotation b { flex:0 0 36px; color:#805a05; font-size:11px; }
.astsv-cp-layout { display:grid; grid-template-columns:minmax(0,1fr) 365px; gap:12px; padding:14px 18px 0; }
.astsv-cp-stage { position:relative; height:clamp(540px,68vh,820px); overflow:hidden; touch-action:none; cursor:grab; background:#d9ddd8; border:1px solid #cfd4ce; border-radius:13px; box-shadow:inset 0 0 50px rgba(19,29,23,.12),0 9px 30px rgba(20,28,23,.08); }
.astsv-cp-stage:active { cursor:grabbing; }
.astsv-cp-stage.placing { cursor:crosshair; box-shadow:inset 0 0 0 3px var(--cp-gold),inset 0 0 50px rgba(19,29,23,.12),0 9px 30px rgba(20,28,23,.08); }
.astsv-cp-stage:fullscreen { height:100vh; border:0; border-radius:0; }
.astsv-cp-stage canvas { display:block; width:100%; height:100%; }
.astsv-cp-hint { position:absolute; left:50%; bottom:12px; padding:7px 12px; color:#fff; font-size:10px; font-weight:750; white-space:nowrap; background:rgba(16,19,21,.78); border:1px solid rgba(255,255,255,.17); border-radius:20px; transform:translateX(-50%); pointer-events:none; }
.astsv-cp-map-note { display:flex; gap:12px; margin-top:8px; padding:10px 12px; color:#696f6b; font-size:10px; line-height:1.5; background:#fff9e7; border:1px solid #ead89f; border-radius:9px; }
.astsv-cp-map-note strong { flex:0 0 auto; color:#72520b; }
.astsv-cp-map-note span { flex:1; }
.astsv-cp-map-note b { color:#383d39; }
.astsv-cp-map-note button { flex:0 0 auto; align-self:center; padding:6px 9px; color:#73530c; font-size:9px; font-weight:800; background:#fff; border:1px solid #dfc77d; border-radius:6px; }
.astsv-cp-map-note button[hidden] { display:none; }
.astsv-cp-sidebar { overflow:hidden; background:#fff; border:1px solid var(--cp-line); border-radius:13px; box-shadow:0 8px 28px rgba(20,28,23,.07); }
.astsv-cp-side-title { display:flex; align-items:center; justify-content:space-between; padding:14px; border-bottom:1px solid var(--cp-line); }
.astsv-cp-side-title small,.astsv-cp-side-title strong { display:block; }
.astsv-cp-side-title small { color:#8a908b; font-size:9px; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.astsv-cp-side-title strong { margin-top:2px; font-size:15px; }
.astsv-cp-side-title em { display:grid; width:31px; height:31px; color:#1d2120; font-size:11px; font-style:normal; font-weight:900; place-items:center; background:var(--cp-gold); border-radius:50%; }
.astsv-cp-camera-list { max-height:220px; padding:8px; overflow:auto; background:#f4f5f2; border-bottom:1px solid var(--cp-line); }
.astsv-cp-camera-list button { display:flex; align-items:center; gap:8px; width:100%; margin:3px 0; padding:9px; text-align:left; background:transparent; border:1px solid transparent; border-radius:8px; }
.astsv-cp-camera-list button:hover,.astsv-cp-camera-list button.active { background:#fff; border-color:#e3c264; }
.astsv-cp-camera-list button > i { display:grid; flex:0 0 29px; height:29px; color:#171a1d; font-size:11px; font-style:normal; font-weight:900; place-items:center; background:var(--cp-gold); border-radius:50%; }
.astsv-cp-camera-list button > span { flex:1; min-width:0; }
.astsv-cp-camera-list strong,.astsv-cp-camera-list small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.astsv-cp-camera-list strong { color:#282d29; font-size:11px; }
.astsv-cp-camera-list small { margin-top:2px; color:#7a817c; font-size:9px; }
.astsv-cp-camera-list em { flex:0 0 auto; padding:4px 5px; color:#66500d; font-size:8px; font-style:normal; font-weight:850; background:#fff1c5; border-radius:5px; }
.astsv-cp-editor { padding:14px; }
.astsv-cp-editor-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:13px; }
.astsv-cp-editor-head small,.astsv-cp-editor-head strong { display:block; }
.astsv-cp-editor-head small { color:#888f8a; font-size:8px; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.astsv-cp-editor-head strong { max-width:235px; margin-top:2px; overflow:hidden; font-size:13px; text-overflow:ellipsis; white-space:nowrap; }
.astsv-cp-editor-head button { padding:6px 8px; color:#a13f3f; font-size:9px; font-weight:800; background:#fff3f3; border:1px solid #edcaca; border-radius:6px; }
.astsv-cp-editor label { margin:10px 0; }
.astsv-cp-editor label > span { display:flex; align-items:center; justify-content:space-between; }
.astsv-cp-editor label b { color:#80600c; }
.astsv-cp-editor input,.astsv-cp-editor select,.astsv-cp-editor textarea { font-size:11px; }
.astsv-cp-editor input[type="range"] { min-height:auto; padding:0; accent-color:#d59b15; border:0; box-shadow:none; }
.astsv-cp-fields.two { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.astsv-cp-unit { display:flex; }
.astsv-cp-unit input { border-radius:7px 0 0 7px; }
.astsv-cp-unit i { display:grid; flex:0 0 31px; color:#666d68; font-size:10px; font-style:normal; place-items:center; background:#f2f3f1; border:1px solid #d7dcd7; border-left:0; border-radius:0 7px 7px 0; }
.astsv-cp-disclaimer { margin:10px 0 0; color:#8c928e; font-size:8px; line-height:1.5; }
.astsv-cp-empty { padding:28px 13px; color:#7d837f; font-size:11px; line-height:1.55; text-align:center; }
.astsv-cp-empty strong,.astsv-cp-empty span { display:block; }
.astsv-cp-summary { margin:14px 18px 28px; padding:20px; background:#fff; border:1px solid var(--cp-line); border-radius:13px; }
.astsv-cp-summary > header { display:flex; align-items:flex-end; justify-content:space-between; gap:30px; margin-bottom:15px; }
.astsv-cp-summary header small { color:#b07b05; font-size:9px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.astsv-cp-summary h2 { margin:3px 0 0; font-size:20px; }
.astsv-cp-summary header p { max-width:570px; margin:0; color:#747a76; font-size:9px; line-height:1.5; text-align:right; }
.astsv-cp-table-wrap { overflow-x:auto; }
.astsv-cp-summary table { width:100%; border-collapse:collapse; font-size:10px; }
.astsv-cp-summary th { padding:9px; color:#676e69; font-size:8px; letter-spacing:.06em; text-align:left; text-transform:uppercase; background:#f1f3f0; border-bottom:1px solid #d9ddd9; }
.astsv-cp-summary td { padding:10px 9px; vertical-align:top; border-bottom:1px solid #e7e9e6; }
.astsv-cp-summary td strong,.astsv-cp-summary td small { display:block; }
.astsv-cp-summary td small { margin-top:2px; color:#818782; font-size:8px; }
.astsv-cp-summary td em { display:inline-block; padding:4px 6px; color:#664c0a; font-size:8px; font-style:normal; font-weight:850; background:#fff1c4; border-radius:5px; }
.astsv-cp-summary td em.alternative { color:#4e5e67; background:#edf1f4; }
.astsv-cp-summary td em.site-verification { color:#803c2a; background:#fff0eb; }
.astsv-cp-toast { position:fixed; right:20px; bottom:20px; z-index:99999; max-width:330px; padding:11px 14px; color:#fff; font-size:11px; font-weight:750; background:#1f2a24; border-radius:8px; box-shadow:0 12px 30px rgba(0,0,0,.22); opacity:0; transform:translateY(15px); pointer-events:none; transition:.2s ease; }
.astsv-cp-toast.show { opacity:1; transform:translateY(0); }
.astsv-cp-toast.error { background:#8f3434; }
.astsv-cp-access { max-width:620px; margin:10vh auto; padding:40px; text-align:center; background:#fff; border:1px solid #ddd; border-radius:18px; box-shadow:0 18px 50px rgba(20,25,22,.1); }
.astsv-cp-access img { width:70px; height:70px; object-fit:contain; }
.astsv-cp-access h1 { margin:16px 0 8px; font-size:28px; }
.astsv-cp-access p { color:#6d746f; }
.astsv-cp-access-button { display:inline-block; margin-top:10px; padding:11px 17px; color:#171a1d; font-weight:850; text-decoration:none; background:var(--cp-gold); border-radius:8px; }

@media (max-width:1100px) {
  .astsv-cp-meta { grid-template-columns:1fr 1fr; }
  .astsv-cp-layout { grid-template-columns:1fr; }
  .astsv-cp-sidebar { display:grid; grid-template-columns:310px minmax(0,1fr); }
  .astsv-cp-side-title { grid-column:1/-1; }
  .astsv-cp-camera-list { max-height:none; border-right:1px solid var(--cp-line); border-bottom:0; }
}
@media (max-width:700px) {
  .astsv-cp-header { align-items:flex-start; padding:13px 14px; }
  .astsv-cp-brand img { width:42px; height:42px; }
  .astsv-cp-brand small { display:none; }
  .astsv-cp-brand strong { font-size:15px; }
  .astsv-cp-document-actions { flex-wrap:wrap; justify-content:flex-end; }
  .astsv-cp-document-actions button { min-height:35px; padding:7px 9px; font-size:10px; }
  .astsv-cp-meta { grid-template-columns:1fr; padding:11px 14px; }
  .astsv-cp-toolbar { padding:9px 14px; }
  .astsv-cp-layout { padding:10px 10px 0; }
  .astsv-cp-stage { height:62vh; min-height:430px; }
  .astsv-cp-hint { max-width:92%; overflow:hidden; text-overflow:ellipsis; }
  .astsv-cp-sidebar { display:block; }
  .astsv-cp-camera-list { max-height:210px; border-right:0; border-bottom:1px solid var(--cp-line); }
  .astsv-cp-map-note { display:block; }
  .astsv-cp-map-note strong { display:block; margin-bottom:3px; }
  .astsv-cp-map-note button { margin-top:7px; }
  .astsv-cp-summary { margin:10px 10px 22px; padding:14px; }
  .astsv-cp-summary > header { display:block; }
  .astsv-cp-summary header p { margin-top:8px; text-align:left; }
}

@media print {
  @page { size:A4 landscape; margin:10mm; }
  body.astsv-camera-planner-page { background:#fff !important; }
  .astsv-camera-planner-page .site-header,.astsv-camera-planner-page .site-footer,.astsv-camera-planner-page .astsv-cp-document-actions,.astsv-camera-planner-page .astsv-cp-toolbar,.astsv-camera-planner-page .astsv-cp-sidebar,.astsv-camera-planner-page .astsv-cp-hint,.astsv-camera-planner-page .astsv-cp-map-note button,.astsv-camera-planner-page .astsv-cp-toast { display:none !important; }
  .astsv-cp-root { width:auto; margin:0; background:#fff; }
  .astsv-cp-app { min-height:0; }
  .astsv-cp-header { padding:8px 12px; print-color-adjust:exact; -webkit-print-color-adjust:exact; }
  .astsv-cp-brand img { width:38px; height:38px; }
  .astsv-cp-meta { grid-template-columns:1fr 1.4fr 1fr 150px; padding:8px 0; }
  .astsv-cp-meta input { padding:3px 0; border:0; }
  .astsv-cp-layout { display:block; padding:7px 0 0; }
  .astsv-cp-stage { height:128mm; border-radius:0; box-shadow:none; }
  .astsv-cp-map-note { margin-top:5px; padding:6px 8px; print-color-adjust:exact; -webkit-print-color-adjust:exact; }
  .astsv-cp-summary { margin:8px 0 0; padding:10px 0 0; border:0; border-radius:0; break-before:page; }
  .astsv-cp-summary > header { margin-bottom:8px; }
  .astsv-cp-summary h2 { font-size:17px; }
  .astsv-cp-summary table { font-size:8px; }
  .astsv-cp-summary th,.astsv-cp-summary td { padding:6px; print-color-adjust:exact; -webkit-print-color-adjust:exact; }
}
