:root{--bg: #f8fafc;--panel: #ffffff;--panel-2: #f1f5f9;--border: #e2e8f0;--text: #0f172a;--muted: #64748b;--primary: #3b82f6;--primary-2: #2563eb;--success: #10b981;--warn: #f59e0b;--danger: #ef4444;--radius: 12px;--shadow: 0 4px 20px rgba(15, 23, 42, .06)}*{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;color:#1e293b}.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;box-shadow:0 1px 3px #00000005}.brand{font-weight:800;font-size:1.15rem;letter-spacing:.3px;color:var(--primary-2)}.brand.big{font-size:1.8rem}.topnav{display:flex;align-items:center;gap:1.1rem}.topnav a{font-weight:500;color:var(--muted);transition:color .15s}.topnav a:hover{color:var(--primary-2)}.user-chip{display:flex;align-items:center;gap:.4rem;font-size:.9rem;font-weight:500;background:var(--panel-2);padding:.3rem .8rem;border-radius:20px}.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);color:var(--text);padding:.55rem .95rem;border-radius:9px;cursor:pointer;font-weight:600;font-size:.9rem;transition:transform .05s,background .15s,border .15s,box-shadow .15s;box-shadow:0 1px 2px #00000008}.btn:hover{border-color:var(--muted);background:var(--panel-2)}.btn:active{transform:translateY(1px);box-shadow:none}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--primary-2);border-color:var(--primary-2);color:#fff}.btn.primary:hover{background:var(--primary);border-color:var(--primary);box-shadow:0 4px 12px #3b82f640}.btn.ghost{background:transparent;border-color:transparent;box-shadow:none}.btn.ghost:hover{background:var(--panel-2)}.btn.success{background:var(--success);border-color:var(--success);color:#fff}.btn.success:hover{background:#059669;border-color:#059669;box-shadow:0 4px 12px #10b98140}.btn.warn{background:var(--warn);border-color:var(--warn);color:#fff}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn.danger:hover{background:#dc2626;border-color:#dc2626;box-shadow:0 4px 12px #ef444440}.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;font-weight:500;transition:color .15s}.link-btn:hover{color:var(--danger)}input,select,textarea{width:100%;padding:.6rem .7rem;border-radius:9px;border:1px solid var(--border);background:var(--panel);color:var(--text);font-size:.92rem;font-family:inherit;transition:border .15s,box-shadow .15s;box-shadow:inset 0 1px 2px #00000005}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #3b82f626}textarea{min-height:72px;resize:vertical}label{display:block;font-size:.85rem;color:var(--text);font-weight:500;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;box-shadow:var(--shadow)}.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;background:var(--panel);transition:all .15s}.check-pill:hover{border-color:var(--muted)}.check-pill.on{border-color:var(--primary-2);background:#3b82f61a;color:var(--primary-2);font-weight:500}.check-pill input{width:auto;margin:0;accent-color:var(--primary-2)}.auth-wrap{display:grid;place-items:center;min-height:100vh;padding:1rem;background:linear-gradient(135deg,#f8fafc,#e2e8f0)}.auth-card{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:2.5rem 2rem;width:100%;max-width:400px;box-shadow:0 10px 40px #00000014;display:flex;flex-direction:column;gap:.5rem}.auth-card h1{text-align:center;margin-bottom:1rem;color:var(--primary-2)}.auth-card label{margin-top:.6rem}.auth-card .btn{margin-top:1.2rem;padding:.75rem;font-size:1rem}.demo-creds{margin-top:1.5rem;display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center;align-items:center;padding-top:1rem;border-top:1px solid var(--border)}.chip{background:var(--panel-2);border:1px solid var(--border);color:var(--text);padding:.35rem .7rem;border-radius:20px;font-size:.78rem;cursor:pointer;transition:all .15s;font-weight:500}.chip:hover{background:#e2e8f0}.chip.active{background:var(--primary-2);border-color:var(--primary-2);color:#fff;box-shadow:0 2px 8px #3b82f64d}.alert{padding:.7rem .9rem;border-radius:9px;margin-bottom:1rem;font-size:.9rem;font-weight:500}.alert.error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#b91c1c}.alert.success-alert{background:#10b9811a;border:1px solid rgba(16,185,129,.3);color:#047857}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.3rem}.project-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1.3rem;display:flex;flex-direction:column;gap:.7rem;transition:transform .15s,border .15s,box-shadow .15s;box-shadow:0 2px 10px #00000008}.project-card:hover{transform:translateY(-4px);border-color:var(--primary);box-shadow:0 12px 24px #00000014}.project-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem}.project-card-head h3{font-size:1.1rem}.project-card-meta{display:flex;justify-content:space-between;align-items:center;font-size:.85rem;color:var(--muted)}.project-card-people{display:flex;flex-wrap:wrap;gap:.7rem;font-size:.82rem;font-weight:500}.locked{color:var(--warn);font-weight:600}.status-badge,.review-badge,.priority,.role-badge{display:inline-block;padding:.25rem .65rem;border-radius:20px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap}.status-badge{background:var(--panel-2);border:1px solid var(--border);color:var(--muted)}.status-badge.in_progress,.review-badge.pending_review{background:#3b82f61a;color:var(--primary-2);border:1px solid rgba(59,130,246,.2)}.status-badge.in_review{background:#f59e0b1a;color:#b45309;border:1px solid rgba(245,158,11,.2)}.status-badge.delivered,.review-badge.approved,.status-badge.hls-ready{background:#10b9811a;color:#047857;border:1px solid rgba(16,185,129,.2)}.status-badge.revisions,.review-badge.rejected,.status-badge.hls-failed{background:#ef44441a;color:#b91c1c;border:1px solid rgba(239,68,68,.2)}.status-badge.hls-processing,.status-badge.hls-pending{background:#f59e0b1a;color:#b45309;border:1px solid rgba(245,158,11,.2)}.priority.low{color:var(--muted)}.priority.medium{color:var(--primary-2)}.priority.high{color:#b45309}.priority.urgent{color:var(--danger)}.role-badge.admin{background:#ef44441a;color:#b91c1c}.role-badge.editor{background:#3b82f61a;color:var(--primary-2)}.role-badge.client{background:#10b9811a;color:#047857}.processing-panel h3{margin-bottom:.6rem;color:#1e293b}.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;font-weight:500}.data-table{width:100%;border-collapse:collapse;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.data-table th,.data-table td{text-align:left;padding:.8rem 1rem;border-bottom:1px solid var(--border);font-size:.92rem}.data-table th{color:var(--muted);font-weight:600;background:var(--panel-2);text-transform:uppercase;font-size:.75rem;letter-spacing:.5px}.data-table tr:hover td{background:#f8fafc}.row-actions{display:flex;gap:.5rem;flex-wrap:wrap}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;z-index:50;padding:1rem}.modal{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:1.8rem;width:100%;max-width:440px;box-shadow:0 20px 60px #00000026}.modal h2{margin-bottom:.4rem;color:#1e293b}.modal label{margin-top:1.2rem}.modal-actions{display:flex;gap:.8rem;margin-top:1.5rem;justify-content:flex-end}.pwd-row{display:flex;gap:.5rem;margin-top:.3rem}.pwd-row input{font-family:ui-monospace,SF Mono,Menlo,monospace;letter-spacing:.5px;background:#f8fafc}.pwd-row input.reveal{background:#10b9810d;border-color:var(--success);color:#047857;font-weight:600}.pwd-row .btn{white-space:nowrap}.hint{font-size:.78rem;margin:.5rem 0 0;color:var(--muted)}.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:.8rem 1.2rem;margin-bottom:1.5rem;font-size:.9rem;box-shadow:0 2px 8px #00000005}.edit-link{margin-left:.5rem;color:var(--primary-2);font-weight:500}.edit-link:hover{text-decoration:underline}.editor-manage{margin-top:-.6rem}.detail-grid{display:grid;grid-template-columns:1fr 340px;gap:1.5rem;align-items:start}.video-player{width:100%;border-radius:var(--radius);background:#000;aspect-ratio:16/9;box-shadow:0 8px 24px #00000026}.player-placeholder{width:100%;aspect-ratio:16/9;border-radius:var(--radius);background:var(--panel-2);border:2px dashed var(--border);display:grid;place-content:center;gap:.5rem;text-align:center;color:var(--muted)}.versions-col{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1.2rem;box-shadow:var(--shadow)}.upload-box{display:flex;flex-direction:column;gap:.6rem;padding-bottom:1.2rem;margin-bottom:1.2rem;border-bottom:1px solid var(--border)}.file-drop{border:2px dashed var(--border);border-radius:12px;padding:1.2rem;text-align:center;cursor:pointer;display:block;font-size:.9rem;font-weight:500;color:var(--muted);word-break:break-word;transition:all .2s;background:#f8fafc}.file-drop:hover{border-color:var(--primary-2);background:#3b82f608;color:var(--primary-2)}.file-drop.has-file{border-style:solid;border-color:var(--success);background:#10b9810d;color:#047857}.file-drop input{display:none}.version-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.8rem}.version-item{border:1px solid var(--border);border-radius:12px;padding:.9rem;cursor:pointer;transition:all .2s;background:var(--panel)}.version-item:hover{border-color:var(--primary);box-shadow:0 4px 12px #0000000a}.version-item.active{border-color:var(--primary-2);background:#3b82f608;box-shadow:0 0 0 1px var(--primary-2)}.version-top{display:flex;justify-content:space-between;align-items:center;font-weight:600;color:#1e293b}.version-tags{display:flex;gap:.4rem;align-items:center;margin:.5rem 0;flex-wrap:wrap}.shipped{color:var(--success);font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px}.version-actions{display:flex;gap:.5rem;margin-top:.7rem;flex-wrap:wrap}.review-note{font-size:.85rem;margin:.5rem 0 0;color:var(--text);padding:.5rem;background:var(--panel-2);border-radius:6px;border-left:3px solid var(--muted)}.review-note.rejected{border-left-color:var(--danger);background:#ef44440d}.reject-box{width:100%;display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.reject-box textarea{min-height:64px;font-size:.85rem}.reject-actions{display:flex;gap:.5rem}.comments{margin-top:1.5rem;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1.2rem;box-shadow:var(--shadow)}.comments-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.scope-toggle{display:flex;gap:.4rem}.comment-list{list-style:none;margin:0 0 1.2rem;padding:0 .5rem 0 0;display:flex;flex-direction:column;gap:.8rem;max-height:400px;overflow-y:auto}.comment-list::-webkit-scrollbar{width:6px}.comment-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:10px}.comment{border:1px solid var(--border);border-radius:12px;padding:.8rem 1rem;background:#fff;box-shadow:0 1px 3px #00000005}.comment.scope-internal{border-left:4px solid var(--primary-2)}.comment.scope-client{border-left:4px solid var(--success)}.comment-meta{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;font-size:.8rem;margin-bottom:.4rem;color:var(--muted)}.comment-meta strong{color:#1e293b}.comment-meta .time{margin-left:auto;font-size:.75rem}.scope-tag{background:var(--panel-2);border-radius:12px;padding:.1rem .5rem;font-size:.7rem;font-weight:600;text-transform:uppercase;color:var(--muted)}.decision.approved{color:var(--success);font-weight:600}.decision.revision_requested{color:var(--warn);font-weight:600}.comment p{margin:.3rem 0;font-size:.92rem;line-height:1.4;color:var(--text)}.comment-compose{display:flex;flex-direction:column;gap:.6rem;padding-top:1rem;border-top:1px solid var(--border)}.compose-actions{display:flex;gap:.6rem;flex-wrap:wrap}.assets-panel{margin-top:1.5rem;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1.2rem;box-shadow:var(--shadow)}.asset-list{list-style:none;margin:.8rem 0 0;padding:0;display:flex;flex-direction:column;gap:.6rem}.asset-item{display:flex;justify-content:space-between;align-items:center;gap:.8rem;border:1px solid var(--border);border-radius:12px;padding:.8rem 1rem;background:#fff;box-shadow:0 1px 2px #00000005;transition:border .15s}.asset-item:hover{border-color:var(--primary)}.asset-info{display:flex;flex-direction:column;gap:.2rem;min-width:0}.asset-name{font-size:.95rem;font-weight:500;color:#1e293b;word-break:break-word}.asset-meta{font-size:.78rem;color:var(--muted)}.asset-actions{display:flex;align-items:center;gap:.6rem;white-space:nowrap}.asset-note{font-size:.85rem;margin-top:.2rem;color:var(--text)}.note-edit{margin-top:.5rem;display:flex;flex-direction:column;gap:.5rem}.note-edit textarea{min-height:56px;font-size:.85rem}.note-edit-actions{display:flex;align-items:center;gap:.6rem}@media (max-width: 860px){.detail-grid,.form-grid{grid-template-columns:1fr}}@media (max-width: 600px){.topbar{flex-direction:column;gap:.8rem;align-items:flex-start;padding:1rem}.content{padding:1rem}.page-head{flex-direction:column;align-items:stretch}.page-head .btn{width:100%;text-align:center}.card-grid{grid-template-columns:1fr}.auth-card{padding:1.8rem 1.2rem}.project-info-bar{flex-direction:column;align-items:flex-start}.version-top{flex-direction:column;align-items:flex-start;gap:.5rem}.version-tags{margin-top:0}.version-actions{width:100%;justify-content:space-between}.data-table,.data-table tbody,.data-table tr,.data-table td{display:block;width:100%}.data-table thead{display:none}.data-table tr{margin-bottom:1rem;border:1px solid var(--border);border-radius:var(--radius)}.data-table td{text-align:right;padding-left:50%;position:relative}.data-table td:before{content:attr(data-label);position:absolute;left:1rem;width:45%;text-align:left;font-weight:600;font-size:.8rem;color:var(--muted);text-transform:uppercase}.data-table td:last-child{border-bottom:0}}
