:root{color-scheme:light;--bg:#f4f5f7;--panel:#fff;--ink:#20242b;--muted:#747983;--line:#e4e6ea;--accent:#9c263c;--accent-hover:#801e32;--soft:#faf0f2;--dark:#16191f;--success:#39775d;--radius:12px;font-family:system-ui,-apple-system,"Segoe UI","Microsoft YaHei",sans-serif;font-size:16px;color:var(--ink);background:var(--bg)}
*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}a{color:var(--accent);text-decoration:none}button,input,textarea,select{outline-offset:3px}button:focus-visible,a:focus-visible{outline:2px solid var(--accent)}button{border:1px solid var(--line);border-radius:8px;padding:9px 14px;min-height:40px;display:inline-flex;justify-content:center;align-items:center;gap:7px;color:var(--ink);background:var(--panel);font-size:.875rem;line-height:1.35;white-space:nowrap}button:hover:not(:disabled){border-color:#c3c6ce;background:#f8f9fa}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}button.ghost{background:transparent;border-color:transparent;color:var(--muted)}button.ghost:hover:not(:disabled){background:#eceef2}button.danger{color:var(--accent)}button.wide{width:100%}.icon{width:18px;height:18px;flex:none;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}h1,h2,h3,p{margin:0}h1{font-size:1.35rem;font-weight:600;line-height:1.45}h2{font-size:1.1rem;font-weight:600}h3{font-size:1rem;font-weight:600}.muted{color:var(--muted)}.small{font-size:.8125rem}.row{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.spread{justify-content:space-between}.badge{display:inline-flex;padding:4px 8px;border-radius:5px;background:var(--soft);color:var(--accent);font-size:.75rem;line-height:1.3;white-space:nowrap}.badge.gray{background:#eff0f3;color:#6b707b}.badge.green{background:#edf5ef;color:var(--success)}.divider{height:1px;background:var(--line);margin:20px 0}.loading{min-height:240px;display:flex;gap:12px;justify-content:center;align-items:center;color:var(--muted)}.spinner{width:20px;height:20px;border:2px solid #e5d1d5;border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation:none}}
.login-shell{min-height:100svh;display:grid;place-items:center;padding:24px;background:linear-gradient(140deg,#f5f6f8,#eeeef1)}.login-box{width:100%;max-width:390px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:32px;box-shadow:0 12px 40px #22242b08}.login-line{height:4px;width:38px;background:var(--accent);border-radius:2px;margin-bottom:20px}.login-box h1{margin-bottom:24px}.field{margin-top:15px}.field label{font-size:.875rem;font-weight:500;display:block;margin-bottom:7px}input[type=text],input[type=password],input[type=number],textarea,select{display:block;width:100%;border:1px solid #dfe2e7;border-radius:8px;padding:11px 12px;background:#fff;color:var(--ink);min-height:44px;font-size:1rem}textarea{resize:vertical;min-height:106px;line-height:1.6}input:focus,textarea:focus,select:focus{border-color:var(--accent);outline:2px solid #9c263c12}input[type=checkbox]{accent-color:var(--accent);width:18px;height:18px}.check{display:flex;align-items:center;gap:9px;font-size:.875rem}.form-error{color:var(--accent);font-size:.875rem;margin-top:12px;min-height:20px;overflow-wrap:anywhere}.login-box .primary{margin-top:20px}
.shell{min-height:100svh}.topbar{background:var(--panel);border-bottom:1px solid var(--line);padding:18px 32px;display:flex;align-items:center;justify-content:space-between;gap:16px}.topbar-nav{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.topbar h1{margin-right:18px}.topbar-nav button.active{color:var(--accent);background:var(--soft);border-color:transparent}.account{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.workspace{max-width:1280px;margin:0 auto;padding:32px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:24px}.page-heading .muted{margin-top:7px;font-size:.875rem}.capacity{display:flex;align-items:center;gap:10px}.capacity-track{width:96px;height:5px;border-radius:4px;background:#e4e6eb;overflow:hidden}.capacity-fill{height:100%;background:var(--accent)}.file-list{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.file-item{padding:20px;display:grid;grid-template-columns:60px minmax(0,1fr) auto;align-items:center;gap:16px;border-top:1px solid var(--line)}.file-item:first-child{border-top:0}.file-thumb{width:60px;height:60px;border-radius:9px;background:#f0f1f4;display:grid;place-items:center;color:#727985}.file-thumb .icon{width:26px;height:26px}.file-thumb.video{background:var(--soft);color:var(--accent)}.file-title{font-weight:550;font-size:1rem;overflow-wrap:anywhere;margin-bottom:7px}.file-meta{font-size:.8125rem;color:var(--muted);display:flex;align-items:center;flex-wrap:wrap;gap:9px}.file-actions{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.empty{padding:64px 24px;text-align:center;display:grid;gap:14px;justify-items:center}.empty .icon{width:32px;height:32px;color:var(--accent)}.empty p{color:var(--muted);font-size:.875rem}.empty button{margin-top:6px}.employee-list{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}.employee-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;padding:20px;border-top:1px solid var(--line)}.employee-row:first-child{border-top:0}.employee-name{font-weight:550}.employee-sub{font-size:.875rem;color:var(--muted);margin-top:5px}
.review-shell{max-width:1440px;margin:0 auto;padding:26px 32px}.review-header{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding-bottom:23px;border-bottom:1px solid var(--line);margin-bottom:24px}.review-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:9px}.review-grid{display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:24px;align-items:start}.video-area{min-width:0}.video-frame{background:var(--dark);border-radius:12px;overflow:hidden;--video-ratio:1.777777778;width:min(100%,calc(70vh * var(--video-ratio)));width:min(100%,calc(70svh * var(--video-ratio)));aspect-ratio:var(--video-ratio);margin-inline:auto;display:grid;place-items:center;position:relative}.video-frame video{width:100%;height:100%;object-fit:contain;display:block}.video-frame .file-placeholder{color:#f5f5f6;display:grid;gap:18px;justify-items:center;padding:24px;text-align:center}.file-placeholder .icon{width:44px;height:44px}.video-warning{display:none;margin-top:12px;padding:12px;background:var(--soft);color:var(--accent);font-size:.875rem;border-radius:8px}.video-warning.show{display:block}.player-actions{margin-top:16px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.player-actions .primary{min-height:44px}.player-hint{margin-top:12px;font-size:.8125rem;color:var(--muted)}.comments-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;min-width:0}.comments-head{padding:18px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px}.comments-list{padding:0 18px;max-height:460px;overflow-y:auto}.comment{padding:18px 0;border-bottom:1px solid var(--line)}.comment:last-child{border-bottom:0}.comment-meta{display:flex;align-items:center;gap:9px;flex-wrap:wrap;color:var(--muted);font-size:.75rem}.time-btn{color:var(--accent);background:var(--soft);border:0;padding:4px 7px;min-height:28px;font-size:.75rem;font-variant-numeric:tabular-nums}.comment p{margin:10px 0 0;font-size:.875rem;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}.comment-images{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.comment-images button{padding:0;width:70px;height:70px;overflow:hidden;border-radius:6px}.comment-images img{width:100%;height:100%;object-fit:cover}.comment-reply{margin-top:12px;border-left:2px solid #dec3c9;padding-left:10px;font-size:.875rem;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere}.comment-reply .small{color:var(--accent);display:block;margin-bottom:4px}.comment-actions{margin-top:10px;display:flex;gap:6px;flex-wrap:wrap}.comment-actions button{padding:5px 8px;font-size:.75rem;min-height:30px}.comment-done{margin-left:auto;font-size:.75rem;color:var(--success)}.no-comments{padding:32px 0;text-align:center;color:var(--muted);font-size:.875rem}.composer{padding:18px;border-top:1px solid var(--line)}.compose-stamp{display:flex;align-items:center;gap:10px;margin-bottom:12px;font-size:.8125rem;color:var(--muted)}.compose-actions{margin-top:12px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.image-preview{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}.image-preview .attachment{position:relative;width:64px;height:64px}.attachment img{width:100%;height:100%;object-fit:cover;border-radius:6px}.attachment button{position:absolute;right:-6px;top:-6px;border-radius:50%;width:24px;height:24px;min-height:24px;padding:0;background:white;box-shadow:0 1px 3px #0002;font-size:15px}.internal-note{font-size:.8125rem;color:var(--muted);padding:18px;border-top:1px solid var(--line)}.review-footer{text-align:center;padding:24px;font-size:.75rem;color:#9499a3}.error-page{max-width:520px;margin:15vh auto;padding:32px;text-align:center}.error-page p{color:var(--muted);margin-top:14px;line-height:1.7}
dialog{padding:0;border:1px solid var(--line);border-radius:14px;box-shadow:0 24px 100px #12151d24;background:#fff;color:var(--ink);width:min(520px,calc(100% - 32px));max-height:calc(100svh - 40px);overflow:auto}dialog::backdrop{background:#171a2259;backdrop-filter:blur(2px)}.modal-head{padding:22px 24px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line)}.modal-body{padding:24px}.modal-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px;margin-top:24px}.modal-head button{min-height:32px;width:32px;padding:0;font-size:22px}.modal-body>p{line-height:1.7;color:var(--muted);font-size:.875rem}.share-result{display:flex;gap:8px;margin-top:16px}.share-result input{min-width:0;font-size:.875rem}.share-entry{padding:14px 0;border-top:1px solid var(--line)}.share-entry:first-child{border-top:0}.share-entry .share-url{font-size:.8125rem;color:var(--muted);overflow-wrap:anywhere;margin-bottom:10px}.upload-drop{position:relative;border:1px dashed #bdc2cc;border-radius:10px;background:#f8f9fb;padding:26px 16px;text-align:center;display:grid;gap:10px;justify-items:center;color:var(--muted)}.upload-drop input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.upload-drop:focus-within{outline:2px solid var(--accent);outline-offset:2px}.upload-drop strong{color:var(--ink);font-weight:500;overflow-wrap:anywhere;max-width:100%}.upload-progress{margin-top:16px}.progress-track{height:6px;border-radius:4px;overflow:hidden;background:#eceef2;margin:10px 0}.progress-fill{height:100%;background:var(--accent);width:0}.upload-progress .row{font-size:.8125rem}.image-modal{width:min(900px,calc(100% - 32px))}.image-full{display:block;width:100%;max-height:75vh;object-fit:contain}.reply-area{margin-top:16px}.modal-body .check{margin-top:16px}.share-note{margin-top:16px;color:var(--muted);font-size:.8125rem;line-height:1.65}.nowrap{white-space:nowrap}#toast{position:fixed;z-index:100;bottom:28px;left:50%;transform:translateX(-50%);max-width:calc(100% - 32px);padding:12px 20px;border-radius:9px;background:#252a32;color:#fff;font-size:.875rem;box-shadow:0 4px 20px #0002;text-align:center}#toast[hidden],[hidden]{display:none!important}
.capacity-fill{width:0}
@media(min-width:1500px){.review-grid{grid-template-columns:minmax(0,1fr) 390px}}
@media(max-width:1000px){.file-item{grid-template-columns:50px minmax(0,1fr)}.file-thumb{width:50px;height:50px}.file-actions{grid-column:2}.review-grid{grid-template-columns:minmax(0,1fr) 330px}.review-shell{padding:24px}.workspace{padding:24px}}
@media(max-width:760px){.topbar{padding:16px;align-items:flex-start;flex-direction:column;gap:12px}.topbar h1{margin-right:8px}.account{align-self:flex-end}.workspace{padding:20px 16px}.page-heading{margin-bottom:18px}.capacity{font-size:.75rem}.capacity-track{width:60px}.file-item{padding:16px;gap:12px}.file-actions button{min-height:40px;padding:8px 10px}.review-shell{padding:20px 16px}.review-grid{grid-template-columns:1fr;gap:20px}.review-header{padding-bottom:18px;margin-bottom:18px}.review-header h1{font-size:1.2rem}.review-meta{font-size:.8125rem}.video-frame{border-radius:9px}.comments-list{max-height:none;overflow:visible}.comments-panel{border-radius:10px}.composer{padding:16px}.comments-head{padding:16px}.comments-list{padding:0 16px}.modal-body{padding:20px}.modal-head{padding:18px 20px}.review-footer{padding:16px 0}.employee-row{padding:16px}.share-result{flex-wrap:wrap}.share-result input{flex:1;min-width:170px}}
@media(pointer:coarse){button{min-height:44px}.comment-actions button{min-height:40px}.time-btn{min-height:36px;padding:8px}.modal-head button{min-height:40px;width:40px}}

.playback-state{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:24px;text-align:center;background:var(--dark);color:#fff;font-size:.875rem;line-height:1.6}.video-warning button{margin-left:12px;margin-top:6px}.video-frame video{min-width:0;min-height:0}
