:root{--text:#1f2430;--muted:#6b7280;--bg:#fff;--panel:#f8fafc;--border:#e5e7eb;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0}.app{grid-template-columns:240px 1fr;min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--border);background:var(--panel);flex-direction:column;gap:16px;padding:16px;display:flex}.brand{font-size:18px;font-weight:700}.sidebar ul{margin:4px 0 12px;padding:0;list-style:none}.nav-section-title{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-top:8px;font-size:12px}.nav-external{color:var(--muted)}.sidebar-footer{color:var(--muted);flex-direction:column;gap:8px;margin-top:auto;font-size:12px;display:flex}.content{padding:24px}.jobs-table{border-collapse:collapse;width:100%}.jobs-table th,.jobs-table td{border-bottom:1px solid var(--border);text-align:left;padding:8px 12px;font-size:14px}.jobs-table tbody tr{cursor:pointer}.jobs-table tbody tr.selected td{background:var(--panel)}.job-run-detail{border:1px solid var(--border);background:var(--panel);border-radius:8px;margin-top:16px;padding:12px 14px}.job-run-detail-head{align-items:center;gap:12px;margin-bottom:8px;display:flex}.job-run-detail .conn{color:var(--muted);font-size:12px}.job-run-progress progress{width:100%;height:10px}.login{flex-direction:column;gap:12px;max-width:320px;margin:15vh auto;display:flex}.login form{flex-direction:column;gap:12px;display:flex}.login label{flex-direction:column;gap:4px;font-size:14px;display:flex}.error{color:#b91c1c}.media-grid-scroll{height:100%;min-height:320px;overflow-y:auto}.media-grid-empty{color:var(--muted);padding:24px 0}.media-tile{background:var(--panel);border:1px solid var(--border);border-radius:8px;position:relative;overflow:hidden}.media-tile.clickable{cursor:pointer}.media-tile.clickable:hover{border-color:var(--muted)}.media-tile-img{object-fit:contain;width:100%;height:100%;display:block}.media-tile-skeleton{background:linear-gradient(90deg, var(--panel) 25%, #eef2f7 50%, var(--panel) 75%);background-size:200% 100%;width:100%;height:100%;animation:1.2s ease-in-out infinite media-skeleton}@keyframes media-skeleton{0%{background-position:200% 0}to{background-position:-200% 0}}.gated{color:var(--muted)}.toolbar{flex-wrap:wrap;gap:12px;margin:12px 0 16px;display:flex}.toolbar label{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;display:flex}.toolbar select,.toolbar input{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:6px;padding:6px 8px}.ad-gallery .media-grid-scroll{height:calc(100vh - 260px)}.pager{align-items:center;gap:12px;margin-top:12px;display:flex}.pager button{border:1px solid var(--border);background:var(--panel);cursor:pointer;border-radius:6px;padding:6px 12px}.pager button:disabled{opacity:.5;cursor:default}.badge{border:1px solid var(--border);border-radius:999px;padding:2px 8px;font-size:12px;display:inline-block}.badge-approved{color:#047857;background:#ecfdf5}.badge-rejected{color:#b91c1c;background:#fef2f2}.badge-flagged{color:#b45309;background:#fffbeb}.badge-pending{background:var(--panel);color:var(--muted)}.tile-badge{pointer-events:none;background:#ffffffeb;position:absolute;top:6px;left:6px}.tile-badge-right{left:auto;right:6px}.run-status{color:var(--muted);font-weight:500}.run-status-failed{color:#b91c1c}.run-error{color:#b91c1c;margin:0 0 8px;font-size:12px}.lightbox-backdrop{z-index:50;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lightbox{background:var(--bg);border-radius:8px;max-width:90vw;max-height:90vh;padding:16px;position:relative;overflow:auto}.lightbox-img{max-width:100%;max-height:70vh;margin:0 auto;display:block}.lightbox-close{cursor:pointer;color:var(--muted);background:0 0;border:none;font-size:24px;line-height:1;position:absolute;top:8px;right:8px}.lightbox-meta{align-items:center;gap:12px;margin-top:12px;display:flex}.master-detail{grid-template-columns:320px 1fr;align-items:start;gap:16px;display:grid}.run-list{max-height:calc(100vh - 300px);margin:0;padding:0;list-style:none;overflow-y:auto}.run-row{text-align:left;border:1px solid var(--border);background:var(--bg);cursor:pointer;border-radius:6px;flex-direction:row;align-items:center;gap:10px;width:100%;margin-bottom:6px;padding:8px 10px;display:flex}.run-thumb{border:1px solid var(--border);background:var(--panel);object-fit:contain;border-radius:4px;flex:none;width:48px;height:48px}.run-thumb-empty{opacity:.5}.run-thumb-skeleton{background:linear-gradient(90deg, var(--panel) 25%, #eef2f7 50%, var(--panel) 75%);background-size:200% 100%;animation:1.2s ease-in-out infinite media-skeleton}.run-meta{flex-direction:column;gap:2px;min-width:0;display:flex}.run-row.selected{border-color:var(--text);background:var(--panel)}.run-title{font-size:14px}.run-sub{color:var(--muted);font-size:12px}.detail .media-grid-scroll{height:calc(100vh - 300px)}.tile-actions{border-top:1px solid var(--border);background:#ffffffeb;justify-content:space-between;align-items:center;gap:4px;padding:4px 6px;display:flex;position:absolute;bottom:0;left:0;right:0}.tile-buttons{gap:2px;display:flex}.tile-buttons button{border:1px solid var(--border);background:var(--bg);cursor:pointer;border-radius:4px;min-width:22px;padding:2px 4px;font-size:11px}.tile-buttons button:disabled{opacity:.4;cursor:default}.tile-buttons button.danger{color:#b91c1c}.tile-buttons button.status-active{background:var(--text);color:var(--bg);border-color:var(--text)}.tile-menu{background:var(--bg);border:1px solid var(--border);z-index:5;border-radius:8px;flex-direction:column;min-width:168px;margin-bottom:4px;padding:4px;display:flex;position:absolute;bottom:100%;right:6px;box-shadow:0 6px 18px #00000029}.tile-menu button{text-align:left;cursor:pointer;color:var(--text);background:0 0;border:none;border-radius:4px;padding:7px 10px;font-size:13px}.tile-menu button:hover:not(:disabled){background:var(--panel)}.tile-menu button:disabled{opacity:.5;cursor:default}.tile-menu button.danger{color:#b91c1c}.export-bar{flex-wrap:wrap;align-items:flex-end;gap:12px;margin:12px 0 16px;display:flex}.export-bar label{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;display:flex}.export-bar input,.export-bar select{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:6px;padding:6px 8px}.export-bar button{border:1px solid var(--border);background:var(--panel);cursor:pointer;border-radius:6px;padding:7px 12px}.export-bar button.primary{background:var(--text);color:var(--bg);border-color:var(--text)}.export-bar button.danger{color:#b91c1c}.export-bar button:disabled{opacity:.5;cursor:default}.download-ready{background:#ecfdf5;border:1px solid #a7f3d0;border-radius:6px;padding:10px 12px}.angle-export-bar{border-top:1px solid var(--border);padding-top:12px}.export-bar-title{color:var(--muted);flex-basis:100%;font-size:13px}.checkbox-label{align-items:center;color:var(--text)!important;flex-direction:row!important;gap:6px!important}.download-count{color:var(--muted);font-size:13px}.ad-export .media-grid-scroll{height:calc(100vh - 320px)}.drive-panel{border-top:1px solid var(--border);margin-top:24px;padding-top:16px}.drive-panel h2{margin:0 0 8px;font-size:16px}.drive-links{margin:8px 0 0;padding-left:18px;font-size:13px}.detail-header{color:var(--muted);justify-content:space-between;align-items:center;margin-bottom:8px;font-size:13px;display:flex}.detail-header-actions{align-items:center;gap:12px;display:flex}.detail-header-actions button{border:1px solid var(--border);background:var(--panel);cursor:pointer;border-radius:6px;padding:5px 10px}.detail-header-actions button:disabled{opacity:.5;cursor:default}.export-link{color:var(--text);white-space:nowrap}.action-note{color:#047857;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:6px;margin:4px 0 8px;padding:6px 10px;font-size:13px}.action-modal{width:420px;max-width:90vw}.action-modal h3{margin:0 0 4px}.modal-field{flex-direction:column;gap:6px;margin:12px 0;display:flex}.modal-field>label{flex-direction:column;gap:4px;font-size:13px;display:flex}.modal-field textarea{border:1px solid var(--border);resize:vertical;border-radius:6px;width:100%;padding:6px 8px;font-family:inherit}.preset-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.preset-grid button{border:1px solid var(--border);background:var(--panel);cursor:pointer;border-radius:6px;padding:6px 8px;font-size:12px}.modal-actions{gap:8px;margin-top:16px;display:flex}.modal-actions .primary{background:var(--text);color:var(--bg);border:1px solid var(--text)}.modal-actions button{border:1px solid var(--border);background:var(--panel);cursor:pointer;border-radius:6px;padding:7px 14px}.modal-actions button:disabled{opacity:.5;cursor:default}.wizard{max-width:860px}.wizard-step{border:1px solid var(--border);background:var(--panel);border-radius:8px;margin-bottom:14px;padding:14px 16px}.wizard-step>h2{margin:0 0 10px;font-size:15px}.wizard-step-num{color:var(--muted);margin-right:6px;font-weight:500}.wizard-field{color:var(--muted);flex-direction:column;gap:4px;margin-bottom:10px;font-size:12px;display:flex}.wizard-field>select,.wizard-field>input,.wizard-field>textarea{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:6px;padding:6px 8px;font-family:inherit}.wizard-field-row{flex-wrap:wrap;gap:14px;display:flex}.wizard-form[aria-disabled=true]{opacity:.5;pointer-events:none}.segmented{border:1px solid var(--border);border-radius:6px;display:inline-flex;overflow:hidden}.segmented button{border:none;border-right:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;padding:6px 12px;font-size:13px}.segmented button:last-child{border-right:none}.segmented button[aria-pressed=true]{background:var(--text);color:var(--bg)}.score-table{border-collapse:collapse;width:100%;font-size:13px}.score-table th,.score-table td{border-bottom:1px solid var(--border);text-align:left;padding:5px 8px}.score-table th{color:var(--muted);font-weight:500}.score-table .score-composite{font-weight:600}.ref-thumbs{flex-wrap:wrap;gap:8px;display:flex}.ref-thumb{border:2px solid var(--border);background:var(--panel);cursor:pointer;border-radius:6px;width:72px;height:72px;padding:0;position:relative;overflow:hidden}.ref-thumb img{object-fit:contain;width:100%;height:100%;display:block}.ref-thumb[aria-pressed=true]{border-color:var(--text)}.ref-thumb-check{background:var(--text);color:var(--bg);text-align:center;border-radius:999px;width:16px;height:16px;font-size:11px;line-height:16px;position:absolute;top:2px;right:2px}.tmpl-selected-ring{border:3px solid var(--text);pointer-events:none;border-radius:8px;position:absolute;inset:0}.estimate-row{border:1px solid var(--border);background:var(--bg);border-radius:6px;align-items:center;gap:14px;padding:10px 12px;font-size:14px;display:flex}.estimate-row strong{font-size:15px}.estimate-warn{color:#b45309;background:#fffbeb;border:1px solid #fde68a;border-radius:6px;align-items:center;gap:8px;padding:8px 10px;font-size:13px;display:flex}.estimate-warn label{color:var(--text);align-items:center;gap:6px;display:flex}.progress-panel{border:1px solid var(--border);background:var(--panel);border-radius:8px;margin-bottom:14px;padding:14px 16px}.progress-panel-head{align-items:center;gap:12px;margin-bottom:10px;display:flex}.progress-panel-head .conn{color:var(--muted);margin-left:auto;font-size:12px}.progress-bar{width:100%;height:12px}.progress-panel-actions{align-items:center;gap:10px;margin-top:12px;display:flex}.angle-card{border:1px solid var(--border);background:var(--panel);border-radius:8px;margin-bottom:12px;padding:12px 14px}.angle-card.discarded{opacity:.55}.angle-card-head{align-items:center;gap:10px;margin-bottom:8px;display:flex}.angle-card-head input[type=text]{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:6px;flex:1;padding:5px 8px;font-weight:600}.angle-card label{color:var(--muted);margin:8px 0 2px;font-size:12px;display:block}.angle-card textarea,.angle-card .angle-pains input{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text);resize:vertical;border-radius:6px;padding:5px 8px;font-family:inherit}.angle-picklist{flex-direction:column;gap:8px;display:flex}.angle-pick{border:1px solid var(--border);background:var(--bg);border-radius:6px;padding:8px 10px}.angle-pick.selected{border-color:var(--text);background:var(--panel)}.angle-pick-head{cursor:pointer;align-items:center;gap:8px;display:flex}.angle-pick-name{font-size:14px;font-weight:600}.angle-pick-combo{margin-left:auto}.angle-pick-detail{margin-top:6px;font-size:13px}.angle-pick-detail>summary{cursor:pointer;color:var(--muted);font-size:12px}.angle-pick-detail p{margin:6px 0 0}.btn-primary{border:1px solid var(--text);background:var(--text);color:var(--bg);cursor:pointer;border-radius:6px;padding:8px 16px;font-size:14px}.btn-primary:disabled{opacity:.5;cursor:default}.btn-secondary{border:1px solid var(--border);background:var(--panel);color:var(--text);cursor:pointer;border-radius:6px;padding:7px 12px}.btn-secondary:disabled{opacity:.5;cursor:default}.stats-bar{border:1px solid var(--border);background:var(--panel);border-radius:6px;flex-wrap:wrap;gap:16px;margin:12px 0 16px;padding:10px 12px;font-size:13px;display:flex}.stats-bar .stat strong{margin-right:4px;font-size:16px}.review-toolbar{align-items:center;gap:10px;margin-bottom:12px;display:flex}.draft-note{color:var(--muted);font-size:12px}.resume-draft{border:1px solid var(--border);background:var(--panel);border-radius:6px;align-items:center;gap:10px;margin-bottom:14px;padding:8px 12px;font-size:13px;display:flex}.skeleton{background:linear-gradient(90deg, var(--panel) 25%, #eef2f7 50%, var(--panel) 75%);background-size:200% 100%;border-radius:4px;height:14px;margin:6px 0;animation:1.2s ease-in-out infinite media-skeleton}
