:root{--bg:#f4f6f9;--panel:#fff;--border:#dde2ea;--text:#1c2430;--muted:#667085;--primary:#1d4ed8;--primary-dark:#1e40af;--primary-soft:#e8eefc;--danger:#c0262d;--danger-soft:#fdecec;--warn:#9a6200;--warn-soft:#fff4dc;--ok:#157f3c;--ok-soft:#e4f6ea;--sidebar:#111827;--sidebar-text:#cbd5e1;--radius:8px;--shadow:0 1px 2px #1018280f, 0 1px 3px #1018281a;color:var(--text);background:var(--bg);font-family:system-ui,Segoe UI,Roboto,sans-serif;font-size:14px}*{box-sizing:border-box}body{background:var(--bg);margin:0}h1{margin:0;font-size:22px}h2{margin:0 0 12px;font-size:16px}a{color:var(--primary)}.shell{grid-template-columns:220px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--sidebar);color:var(--sidebar-text);flex-direction:column;gap:4px;padding:18px 12px;display:flex}.brand{color:#fff;padding:4px 10px 18px;font-size:16px;font-weight:700}.brand small{color:#94a3b8;font-size:12px;font-weight:400;display:block}.nav-link{color:var(--sidebar-text);border-radius:6px;padding:9px 10px;text-decoration:none;display:block}.nav-link:hover{color:#fff;background:#1f2937}.nav-link.active{background:var(--primary);color:#fff}.main{flex-direction:column;min-width:0;display:flex}.topbar{background:var(--panel);border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:10px 24px;display:flex}.topbar .spacer{flex:1}.content{min-width:0;padding:24px}.page-header{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.page-header .spacer{flex:1}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.panel+.panel{margin-top:16px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:9px 10px}th{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:12px;font-weight:600}tr.clickable{cursor:pointer}tr.clickable:hover td{background:#f8fafc}.empty{color:var(--muted);text-align:center;padding:24px}.muted{color:var(--muted)}.mono{font-family:ui-monospace,Consolas,monospace}button,.button{font:inherit;border:1px solid var(--border);background:var(--panel);color:var(--text);cursor:pointer;white-space:nowrap;border-radius:6px;padding:7px 12px}button:hover{border-color:#b8c1cf}button:disabled{opacity:.55;cursor:default}button.primary{background:var(--primary);border-color:var(--primary);color:#fff}button.primary:hover{background:var(--primary-dark)}button.danger{color:var(--danger)}button.small{padding:3px 8px;font-size:12px}button.link{color:var(--primary);background:0 0;border:none;padding:0}input,select,textarea{font:inherit;border:1px solid var(--border);color:var(--text);background:#fff;border-radius:6px;min-width:0;padding:7px 9px}input[type=checkbox],input[type=color]{padding:0}input[type=color]{width:38px;height:32px}textarea{resize:vertical}label.field{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;display:flex}label.field>span{font-weight:600}.form-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;display:grid}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.filters{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.badge{color:var(--muted);background:#eef1f5;border-radius:999px;padding:2px 8px;font-size:12px;display:inline-block}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.danger{background:var(--danger-soft);color:var(--danger)}.badge.info{background:var(--primary-soft);color:var(--primary)}.alert{border-radius:6px;margin-bottom:12px;padding:10px 12px}.alert.error{background:var(--danger-soft);color:var(--danger)}.alert.warn{background:var(--warn-soft);color:var(--warn)}.alert.ok{background:var(--ok-soft);color:var(--ok)}.alert ul{margin:4px 0 0;padding-left:18px}.toast-area{z-index:100;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:20px;right:20px}.toast{color:#fff;box-shadow:var(--shadow);background:#111827;border-radius:6px;max-width:420px;padding:10px 14px}.toast.error{background:var(--danger)}.modal-backdrop{z-index:50;background:#0f172a73;justify-content:center;align-items:flex-start;padding:60px 16px;display:flex;position:fixed;inset:0;overflow:auto}.modal{background:var(--panel);border-radius:10px;width:min(640px,100%);box-shadow:0 20px 40px #00000040}.modal.wide{width:min(960px,100%)}.modal header{border-bottom:1px solid var(--border);align-items:center;padding:14px 18px;display:flex}.modal header h2{flex:1;margin:0}.modal .body{padding:18px}.modal footer{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:12px 18px;display:flex}.login{background:var(--sidebar);justify-content:center;align-items:center;min-height:100vh;display:flex}.login .panel{flex-direction:column;gap:12px;width:min(380px,92vw);display:flex}.media-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;display:grid}.media-card{border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;background:#fff;flex-direction:column;display:flex;overflow:hidden}.media-card.selected{outline:2px solid var(--primary)}.media-card .thumb{aspect-ratio:16/9;color:#9ca3af;background:#1f2937;justify-content:center;align-items:center;display:flex}.media-card .thumb img{object-fit:contain;width:100%;height:100%}.media-card .info{flex-direction:column;gap:4px;padding:8px 10px;display:flex}.media-card .name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.library{grid-template-columns:220px 1fr;gap:16px;display:grid}.folder-list button{text-align:left;background:0 0;border:none;width:100%;padding:6px 8px;display:block}.folder-list button.active{background:var(--primary-soft);color:var(--primary)}.progress{background:#e5e7eb;border-radius:3px;height:6px;overflow:hidden}.progress>div{background:var(--primary);height:100%}.editor{grid-template-columns:minmax(0,1fr) 380px;align-items:start;gap:16px;display:grid}.canvas-wrap{border-radius:var(--radius);background:#0f172a;padding:16px;overflow:hidden}.canvas-wrap.zoomed{max-height:70vh;overflow:auto}.canvas{transform-origin:0 0;-webkit-user-select:none;user-select:none;background:#000;position:relative;overflow:hidden}.canvas-layer{position:absolute;overflow:hidden}.canvas-layer.dimmed{opacity:.35}.canvas-layer.free-area{outline:2px dashed #ffffff80}.canvas-item{cursor:move;position:absolute;overflow:hidden}.canvas-item img,.canvas-item video,.canvas-item .placeholder{pointer-events:none;width:100%;height:100%;display:block}.canvas-item .placeholder{color:#fff;background:repeating-linear-gradient(45deg,#334155,#334155 20px,#3b4a60 20px 40px);justify-content:center;align-items:center;font-size:48px;display:flex}.canvas-item.selected{z-index:5;outline:4px solid #38bdf8}.resize-handle{cursor:nwse-resize;background:#38bdf8;border-radius:4px;width:36px;height:36px;position:absolute;bottom:-2px;right:-2px}.layer-list{flex-direction:column;gap:8px;display:flex}.layer-card{border:1px solid var(--border);border-radius:var(--radius);background:#fff}.layer-card.selected{border-color:var(--primary)}.layer-card header{cursor:pointer;align-items:center;gap:6px;padding:8px 10px;display:flex}.layer-card header .name{flex:1;font-weight:600}.item-row{border-top:1px solid var(--border);cursor:pointer;align-items:center;gap:6px;padding:6px 10px;display:flex}.item-row.selected{background:var(--primary-soft)}.item-row .name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.kind{color:var(--muted);background:#eef1f5;border-radius:4px;padding:1px 6px;font-size:11px}.kind.video{color:#1d4ed8;background:#e0ecff}.kind.image{color:#157f3c;background:#e7f7ee}.kind.text{color:#9a6200;background:#fff1df}.kind.composition{color:#6d28d9;background:#f1e8ff}.props{flex-direction:column;gap:12px;display:flex}.props section{border-top:1px solid var(--border);padding-top:12px}.weekdays{flex-wrap:wrap;gap:4px;display:flex}.weekdays label{border:1px solid var(--border);border-radius:4px;align-items:center;gap:3px;padding:3px 6px;font-size:12px;display:flex}.sticky-actions{z-index:10;background:var(--bg);padding-bottom:8px;position:sticky;top:0}@media (width<=1100px){.library,.editor{grid-template-columns:1fr}}@media (width<=760px){.shell{grid-template-columns:1fr}.sidebar{flex-flow:wrap;padding:8px}.brand{padding:4px 10px}.content{padding:16px}}.form-grid>label>input,.form-grid>label>select{width:100%}.thumb-box{background:#1f2937;border-radius:4px;justify-content:center;align-items:center;display:flex;overflow:hidden}.thumb-box img{object-fit:cover;width:100%;height:100%}.empty-thumb{background:repeating-linear-gradient(45deg,#e5e7eb,#e5e7eb 6px,#f3f4f6 6px 12px)}.composition-thumb{color:#ede9fe;background:#6d28d9;font-size:26px}.layer-thumb{background:#111827;border-radius:4px;flex:none;position:relative;overflow:hidden}.layer-thumb-slot{border:1px solid #374151;position:absolute}.layer-thumb-area{outline:1px solid #38bdf8;position:absolute;overflow:hidden}.layer-thumb-area .thumb-box{border-radius:0}.slot-map{background:#e5e7eb;border-radius:6px;position:relative}.slot-map-cell{color:#e2e8f0;background:#334155;border:1px solid #94a3b8;border-radius:0;padding:0;font-size:18px;position:absolute}.slot-map-cell:hover{background:#475569}.slot-map-cell.selected{background:var(--primary);color:#fff}.studio{grid-template-columns:340px minmax(0,1fr);align-items:start;gap:16px;display:grid}.studio-side{max-height:calc(100vh - 80px);position:sticky;top:60px;overflow-y:auto}.studio-main{flex-direction:column;gap:12px;min-width:0;display:flex}.studio-canvas{width:100%;max-width:900px;margin:0 auto}.tabs{border-bottom:1px solid var(--border);margin:-4px -4px 12px;display:flex}.tabs button{color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;padding:8px 12px;font-weight:600}.tabs button.active{color:var(--primary);border-bottom-color:var(--primary)}.lanes{flex-direction:column;gap:8px;display:flex}.lane{align-items:flex-start;gap:8px;min-width:0;display:flex}.lane-head{border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;background:#fff;flex:0 0 230px;align-items:center;gap:8px;padding:6px;display:flex}.lane-head.selected{border-color:var(--primary);background:var(--primary-soft)}.lane-letter{text-align:center;width:22px;font-size:22px;font-weight:700}.lane-items{flex-wrap:wrap;flex:1;align-content:flex-start;gap:8px;min-width:0;display:flex}.card{border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;background:#fff;flex:0 230px;align-items:center;gap:8px;min-width:170px;max-width:260px;padding:6px;display:flex;position:relative}.card.selected{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary);background:#ecfdf5}.card .card-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.card .card-name{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;overflow:hidden}.card .card-meta{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.card .card-meta.rules{color:var(--muted)}.card .card-meta.rules.off{color:#b91c1c}.card .card-actions{gap:2px;display:none;position:absolute;top:2px;right:2px}.card:hover .card-actions,.card.selected .card-actions{display:flex}.add-card{border-radius:var(--radius);width:150px;color:var(--muted);background:0 0;border:1px dashed #9ca3af;flex:none;justify-content:center;align-items:center;display:flex}.add-card:hover{border-color:var(--primary);color:var(--primary)}@media (width<=1100px){.studio{grid-template-columns:1fr}.studio-side{max-height:none;position:static}}.work-tabs{z-index:12;background:var(--bg);gap:4px;padding:0 0 8px;display:flex;position:sticky;top:0;overflow-x:auto}.work-tab{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:8px;flex:none;align-items:center;gap:8px;max-width:240px;padding:6px 8px;display:flex}.work-tab.active{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.work-tab-icon{color:var(--muted);font-size:18px}.work-tab-icon.composition{color:#6d28d9}.work-tab-text{flex-direction:column;min-width:0;display:flex}.work-tab-title{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;overflow:hidden}.work-tab-state{color:var(--ok);font-size:11px}.work-tab-state.dirty{color:var(--warn)}.work-tab-close{color:var(--muted);background:0 0;border:none;padding:0 4px;font-size:16px}.work-tab-close:hover{color:var(--danger)}.workspace .sticky-actions{top:52px}.stat-cards{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:14px;display:grid}.stat-card{border:1px solid var(--border);border-radius:var(--radius);text-align:left;cursor:pointer;background:#fff;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;display:flex}.stat-card .stat-value{color:var(--muted,#6b7280);font-size:28px;font-weight:700;line-height:1.1}.stat-card .stat-label{color:var(--muted,#6b7280);font-size:13px}.stat-card.danger.has{background:var(--danger-soft);border-color:var(--danger)}.stat-card.danger.has .stat-value{color:var(--danger)}.stat-card.warn.has{background:var(--warn-soft);border-color:var(--warn)}.stat-card.warn.has .stat-value{color:var(--warn)}.stat-card.ok.has .stat-value{color:var(--ok)}.stat-card.selected{box-shadow:0 0 0 2px var(--primary);border-color:var(--primary)}.template-grid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px;display:grid}.template-preview{justify-content:center;align-items:center;height:150px;display:flex}.rule-block{border:1px solid var(--border);border-radius:var(--radius);background:#fafbfc;margin:8px 0;padding:10px}.rule-block-head{margin-bottom:6px}.rule-times{flex-direction:column;align-items:flex-start;gap:6px;margin-top:8px;display:flex}.rule-time input[type=time]{width:auto}.lanes-search{margin-bottom:8px}.lanes-search input{max-width:320px}.card.highlight{background:#f4ff3a;border-color:#c8d400;box-shadow:0 0 0 2px #e6f500}.programming-tabs{margin-bottom:10px;padding:8px 10px}.event-branches{grid-template-columns:1fr 1fr;gap:14px;display:grid}.event-branches input[type=search]{width:100%}.event-branches-list{border:1px solid var(--border);border-radius:var(--radius);max-height:45vh;margin-top:8px;overflow:auto}.event-branch{border:0;border-bottom:1px solid var(--border);text-align:left;background:#fff;border-radius:0;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:6px 10px;display:flex}button.event-branch{justify-content:flex-start}button.event-branch:hover{background:#eef4ff}.event-branch.chosen{background:#f3faf5}.event-branch-names{max-width:420px;font-size:12px}@media (width<=760px){.lane{flex-direction:column}.lane-head{flex-basis:auto}.card{flex:100%;max-width:none}}.card[draggable=true]{cursor:grab}.card.drop-before{box-shadow:-4px 0 0 0 var(--primary)}.card.drop-after{box-shadow:4px 0 0 0 var(--primary)}.lane-head[draggable=true]{cursor:grab}.lane.drop-above{box-shadow:0 -3px 0 0 var(--primary)}.lane.drop-below{box-shadow:0 3px 0 0 var(--primary)}.video-bar{border:1px solid var(--border);border-radius:var(--radius);background:#f8fafc;flex-wrap:wrap;align-items:center;gap:6px;margin:10px 0;padding:8px;display:flex}.plays-box{border:1px solid var(--border);border-radius:var(--radius);margin-top:12px;padding:8px 10px}.plays-box h3{margin:0 0 6px;font-size:13px}.card .plays-tag{color:var(--muted);font-weight:600}.card .plays-tag.ad{color:#b45309}.pauta-use{color:var(--muted);font-size:11px;font-weight:600}.pauta-use.full{color:#b45309}.pauta-use.over{color:#b91c1c}.hour-strip{background:var(--border,#e5e7eb);border-radius:4px;height:22px;margin-top:12px;position:relative;overflow:hidden}.hour-strip span{border-right:1px solid #fff;position:absolute;top:0;bottom:0}.hour-strip .ad,.hour-key.ad{background:#f59e0b}.hour-strip .counted,.hour-key.counted{background:#3b82f6}.hour-strip .plain,.hour-key.plain{background:#9ca3af}.hour-key{vertical-align:middle;border-radius:2px;width:10px;height:10px;margin:0 2px 0 8px;display:inline-block}.hour-list{max-height:280px;margin:0;padding-left:36px;font-size:13px;overflow:auto}.hour-list li.ad{color:#b45309;font-weight:600}.stats-bar{vertical-align:middle;background:#3b82f6;border-radius:2px;min-width:2px;height:8px;margin-right:6px;display:inline-block}.report-table td.report-cell{white-space:nowrap;text-align:right;font-weight:600}.report-table td.report-cell .muted{font-weight:400}.report-table td.report-cell.ok{color:var(--ok)}.report-table td.report-cell.warn{color:var(--warn);background:var(--warn-soft)}.report-table td.report-cell.danger{color:var(--danger);background:var(--danger-soft)}.report-table tr.report-total td{border-bottom:2px solid var(--border)}.nav-count{margin-left:6px;padding:0 6px;font-size:11px}tr.strong td{font-weight:600}.sku-list{border:1px solid var(--border);background:var(--panel);border-radius:6px;margin-top:6px;padding:6px}.sku-list input{width:100%;margin-bottom:6px}.sku-options{flex-direction:column;gap:2px;max-height:220px;display:flex;overflow-y:auto}.sku-option{text-align:left;background:0 0;border:none;border-radius:4px;padding:4px 6px;font-weight:400}.sku-option:hover{background:var(--hover,#0000000d)}.sku-option.selected{background:var(--primary-soft,#0078ff1f)}.design-elements{flex-direction:column;gap:4px;display:flex}.design-element{border:1px solid var(--border);cursor:pointer;background:var(--panel);border-radius:6px;align-items:center;gap:10px;padding:6px 8px;display:flex}.design-element.selected{border-color:var(--primary);background:var(--primary-soft)}.design-element-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.dropdown{display:inline-block;position:relative}.dropdown-menu{z-index:50;background:var(--panel);border:1px solid var(--border);border-radius:8px;flex-direction:column;min-width:280px;max-width:min(360px,100vw - 24px);padding:4px;display:flex;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 8px 24px #00000026}.dropdown-menu button{text-align:left;white-space:normal;background:0 0;border:none;border-radius:6px;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px;font-weight:600;display:flex}.dropdown-menu button:hover:not(:disabled){background:var(--primary-soft)}.dropdown-menu button small{font-size:12px;font-weight:400}img.capture{background:#000;border-radius:6px;width:100%;height:auto;display:block}.menu-toggle,.menu-backdrop{display:none}.canvas-layer.free-area,.canvas-item,.resize-handle{touch-action:none}@media (pointer:coarse){button,.button{min-height:40px}button.small{min-height:34px;padding:6px 10px}input[type=checkbox],input[type=radio]{width:20px;height:20px}.resize-handle{width:28px!important;height:28px!important}.card .card-actions{opacity:1}}@media (width<=900px){.shell{grid-template-columns:1fr}.sidebar{z-index:60;flex-flow:column;width:min(280px,85vw);padding:18px 12px;transition:transform .2s;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(-100%)}.sidebar.open{transform:none;box-shadow:8px 0 24px #0000004d}.menu-backdrop{z-index:55;background:#0f172a73;display:block;position:fixed;inset:0}.nav-link{padding:12px 10px}.menu-toggle{align-items:center;gap:6px;font-weight:600;display:inline-flex}.topbar{z-index:40;flex-wrap:wrap;gap:8px;padding:8px 12px;position:sticky;top:0}.topbar .user-name{display:none}.content,.panel{padding:12px}.content table{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto}th,td{padding:8px}.page-header{gap:8px}.page-header h1{font-size:19px}.sticky-actions{position:static}.studio-canvas{max-width:none}}@media (width<=600px){input,select,textarea{font-size:16px}.form-grid{grid-template-columns:1fr}.filters>*{flex:100%}.filters input,.filters select{width:100%}.page-header>.muted{flex-basis:100%;order:3}.stat-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.modal-backdrop{align-items:stretch;padding:0}.modal,.modal.wide{border-radius:0;width:100%;min-height:100%}.modal footer{background:var(--panel);flex-wrap:wrap;position:sticky;bottom:0}.modal footer button{flex:auto}.dropdown-menu{max-width:none;padding:8px 8px calc(8px + env(safe-area-inset-bottom));border-radius:14px 14px 0 0;max-height:80vh;position:fixed;inset:auto 0 0;overflow-y:auto}.toast-area{left:8px;right:8px}.work-tab{max-width:70vw}}@media (width<=900px){.dropdown-menu{min-width:0;max-width:none;padding:8px 8px calc(8px + env(safe-area-inset-bottom));border-radius:14px 14px 0 0;max-height:80vh;position:fixed;inset:auto 0 0;overflow-y:auto}.studio-main{order:-1}}.card .card-meta{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.card-duration{font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap;margin-left:auto;font-weight:600}.design-element .card-duration{margin-left:8px;font-size:12px}.context-menu{z-index:80;background:var(--panel);border:1px solid var(--border);border-radius:8px;flex-direction:column;min-width:220px;padding:4px;display:flex;position:fixed;box-shadow:0 8px 24px #0000002e}.context-menu button{text-align:left;background:0 0;border:none;border-radius:6px;padding:8px 10px}.context-menu button:hover:not(:disabled){background:var(--primary-soft)}.release-options{flex-direction:column;gap:6px;margin:4px 0 10px;display:flex}.release-option{border:1px solid var(--border);cursor:pointer;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;display:flex}.release-option.selected{border-color:var(--primary);background:var(--primary-soft)}.canvas-zoom{gap:6px;margin-bottom:6px}
