:root{--bg: #0d0f14;--panel: #161a22;--panel-2: #1d222c;--border: #2a313d;--text: #e8ecf3;--muted: #8b95a7;--primary: #5b8cff;--primary-2: #3d6ff0;--success: #36c98d;--warn: #f0a93d;--danger: #f0596b;--radius: 12px;--shadow: 0 8px 30px rgba(0, 0, 0, .35)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}h1,h2,h3{margin:0 0 .4rem}.muted{color:var(--muted)}.center{display:grid;place-items:center;min-height:60vh}.clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.full{grid-column:1 / -1}.app-shell{min-height:100vh}.topbar{display:flex;align-items:center;justify-content:space-between;padding:.8rem 1.5rem;background:var(--panel);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.brand{font-weight:800;font-size:1.15rem;letter-spacing:.3px}.brand.big{font-size:1.8rem}.topnav{display:flex;align-items:center;gap:1.1rem}.topnav a:hover{color:var(--primary)}.user-chip{display:flex;align-items:center;gap:.4rem;font-size:.9rem}.content{max-width:1200px;margin:0 auto;padding:1.8rem 1.5rem}.page-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1.2rem;gap:1rem}.head-meta{display:flex;gap:.5rem;align-items:center}.btn{border:1px solid var(--border);background:var(--panel-2);color:var(--text);padding:.55rem .95rem;border-radius:9px;cursor:pointer;font-weight:600;font-size:.9rem;transition:transform .05s,background .15s,border .15s}.btn:hover{border-color:var(--primary)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--primary-2);border-color:var(--primary-2)}.btn.primary:hover{background:var(--primary)}.btn.ghost{background:transparent}.btn.success{background:var(--success);border-color:var(--success);color:#04231a}.btn.warn{background:var(--warn);border-color:var(--warn);color:#2a1c00}.btn.danger{background:var(--danger);border-color:var(--danger);color:#2a0008}.btn.sm{padding:.35rem .7rem;font-size:.82rem}.btn.xs{padding:.25rem .55rem;font-size:.75rem}.link-btn{background:none;border:none;color:var(--muted);cursor:pointer;font-size:.78rem;padding:0}.link-btn:hover{color:var(--danger)}input,select,textarea{width:100%;padding:.6rem .7rem;border-radius:9px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:.92rem;font-family:inherit}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary)}textarea{min-height:72px;resize:vertical}label{display:block;font-size:.85rem;color:var(--muted);margin-bottom:.35rem}label input,label select,label textarea{margin-top:.3rem}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem;margin-bottom:1.4rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}.checkbox-grid{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.4rem}.check-pill{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .7rem;border:1px solid var(--border);border-radius:20px;cursor:pointer;font-size:.85rem;color:var(--text);margin:0}.check-pill.on{border-color:var(--primary);background:#5b8cff1f;color:#9cb8ff}.check-pill input{width:auto;margin:0;accent-color:var(--primary)}.auth-wrap{display:grid;place-items:center;min-height:100vh;padding:1rem}.auth-card{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:2rem;width:100%;max-width:380px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:.5rem}.auth-card label{margin-top:.6rem}.auth-card .btn{margin-top:1rem}.demo-creds{margin-top:1rem;display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.chip{background:var(--panel-2);border:1px solid var(--border);color:var(--text);padding:.25rem .6rem;border-radius:20px;font-size:.78rem;cursor:pointer}.chip.active{background:var(--primary-2);border-color:var(--primary-2)}.alert{padding:.7rem .9rem;border-radius:9px;margin-bottom:1rem;font-size:.9rem}.alert.error{background:#f0596b1f;border:1px solid var(--danger);color:#ffb3bd}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.1rem}.project-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem;display:flex;flex-direction:column;gap:.55rem;transition:transform .08s,border .15s}.project-card:hover{transform:translateY(-2px);border-color:var(--primary)}.project-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem}.project-card-meta{display:flex;justify-content:space-between;align-items:center;font-size:.82rem}.project-card-people{display:flex;flex-wrap:wrap;gap:.7rem;font-size:.8rem}.locked{color:var(--warn)}.status-badge,.review-badge,.priority,.role-badge{display:inline-block;padding:.18rem .55rem;border-radius:20px;font-size:.72rem;font-weight:700;text-transform:capitalize;white-space:nowrap}.status-badge{background:var(--panel-2);border:1px solid var(--border)}.status-badge.in_progress,.review-badge.pending_review{background:#5b8cff26;color:#9cb8ff}.status-badge.in_review{background:#f0a93d26;color:#ffce8a}.status-badge.delivered,.review-badge.approved,.status-badge.hls-ready{background:#36c98d29;color:#7ff0c2}.status-badge.revisions,.review-badge.rejected,.status-badge.hls-failed{background:#f0596b29;color:#ffb3bd}.status-badge.hls-processing,.status-badge.hls-pending{background:#f0a93d29;color:#ffce8a}.priority.low{color:var(--muted)}.priority.medium{color:#9cb8ff}.priority.high{color:var(--warn)}.priority.urgent{color:var(--danger)}.role-badge.admin{background:#f0596b29;color:#ffb3bd}.role-badge.editor{background:#5b8cff29;color:#9cb8ff}.role-badge.client{background:#36c98d29;color:#7ff0c2}.processing-panel h3{margin-bottom:.6rem}.processing-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.processing-list li{display:flex;justify-content:space-between;align-items:center;font-size:.88rem}.data-table{width:100%;border-collapse:collapse;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.data-table th,.data-table td{text-align:left;padding:.7rem .9rem;border-bottom:1px solid var(--border);font-size:.9rem}.data-table th{color:var(--muted);font-weight:600}.row-actions{display:flex;gap:.4rem;flex-wrap:wrap}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:grid;place-items:center;z-index:50;padding:1rem}.modal{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1.4rem;width:100%;max-width:440px;box-shadow:var(--shadow)}.modal h2{margin-bottom:.2rem}.modal label{margin-top:1rem}.modal-actions{display:flex;gap:.6rem;margin-top:1.2rem}.pwd-row{display:flex;gap:.5rem;margin-top:.3rem}.pwd-row input{font-family:ui-monospace,SF Mono,Menlo,monospace;letter-spacing:.5px}.pwd-row input.reveal{background:var(--panel-2);border-color:var(--success);color:#7ff0c2;font-weight:600}.pwd-row .btn{white-space:nowrap}.hint{font-size:.78rem;margin:.5rem 0 0}.alert.success-alert{background:#36c98d1f;border:1px solid var(--success);color:#7ff0c2}.project-info-bar{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:.7rem 1rem;margin-bottom:1.3rem;font-size:.88rem}.edit-link{margin-left:.5rem;color:var(--primary)}.edit-link:hover{color:var(--primary);text-decoration:underline}.editor-manage{margin-top:-.6rem}.detail-grid{display:grid;grid-template-columns:1fr 340px;gap:1.3rem;align-items:start}.video-player{width:100%;border-radius:var(--radius);background:#000;aspect-ratio:16/9}.player-placeholder{width:100%;aspect-ratio:16/9;border-radius:var(--radius);background:var(--panel);border:1px dashed var(--border);display:grid;place-content:center;gap:.5rem;text-align:center}.versions-col{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}.upload-box{display:flex;flex-direction:column;gap:.5rem;padding-bottom:.9rem;margin-bottom:.9rem;border-bottom:1px solid var(--border)}.file-drop{border:1px dashed var(--border);border-radius:9px;padding:.9rem;text-align:center;cursor:pointer;display:block;font-size:.85rem;word-break:break-word;transition:border .15s,color .15s}.file-drop:hover{border-color:var(--primary)}.file-drop.has-file{border-style:solid;border-color:var(--success);color:var(--success)}.file-drop input{display:none}.version-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}.version-item{border:1px solid var(--border);border-radius:10px;padding:.7rem;cursor:pointer;transition:border .15s}.version-item:hover{border-color:var(--primary)}.version-item.active{border-color:var(--primary);background:var(--panel-2)}.version-top{display:flex;justify-content:space-between;align-items:center}.version-tags{display:flex;gap:.4rem;align-items:center;margin:.35rem 0;flex-wrap:wrap}.shipped{color:var(--success);font-size:.75rem;font-weight:700}.version-actions{display:flex;gap:.4rem;margin-top:.5rem;flex-wrap:wrap}.review-note{font-size:.8rem;margin:.35rem 0 0;color:var(--muted)}.review-note.rejected{color:#ffb3bd}.reject-box{width:100%;display:flex;flex-direction:column;gap:.4rem}.reject-box textarea{min-height:56px;font-size:.82rem}.reject-actions{display:flex;gap:.4rem}.comments{margin-top:1.3rem;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}.comments-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.7rem}.scope-toggle{display:flex;gap:.3rem}.comment-list{list-style:none;margin:0 0 1rem;padding:0;display:flex;flex-direction:column;gap:.7rem;max-height:340px;overflow-y:auto}.comment{border:1px solid var(--border);border-radius:10px;padding:.6rem .8rem}.comment.scope-internal{border-left:3px solid var(--primary)}.comment.scope-client{border-left:3px solid var(--success)}.comment-meta{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;font-size:.78rem;margin-bottom:.3rem}.comment-meta .time{margin-left:auto}.scope-tag{background:var(--panel-2);border-radius:12px;padding:.05rem .45rem;font-size:.68rem;color:var(--muted)}.decision.approved{color:var(--success)}.decision.revision_requested{color:var(--warn)}.comment p{margin:.2rem 0;font-size:.9rem}.comment-compose{display:flex;flex-direction:column;gap:.5rem}.compose-actions{display:flex;gap:.5rem;flex-wrap:wrap}.assets-panel{margin-top:1.3rem;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}.asset-list{list-style:none;margin:.4rem 0 0;padding:0;display:flex;flex-direction:column;gap:.5rem}.asset-item{display:flex;justify-content:space-between;align-items:center;gap:.6rem;border:1px solid var(--border);border-radius:10px;padding:.6rem .8rem}.asset-info{display:flex;flex-direction:column;gap:.15rem;min-width:0}.asset-name{font-size:.9rem;word-break:break-word}.asset-meta{font-size:.76rem}.asset-actions{display:flex;align-items:center;gap:.5rem;white-space:nowrap}.asset-note{font-size:.8rem;margin-top:.1rem}.note-edit{margin-top:.35rem;display:flex;flex-direction:column;gap:.35rem}.note-edit textarea{min-height:48px;font-size:.82rem}.note-edit-actions{display:flex;align-items:center;gap:.5rem}@media (max-width: 860px){.detail-grid,.form-grid{grid-template-columns:1fr}}
