:root{--ink:#192b3c;--muted:#64758a;--teal:#11766e;--pale:#eaf4f1;--border:#dce3e9;--bg:#f4f6f8;--nav:#112737;--warn:#fff6e5;--danger:#a34437;--shadow:0 8px 26px #172d4407}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.7 "Microsoft JhengHei","PingFang TC","Noto Sans CJK TC",sans-serif}button,input,select,textarea{font:inherit}button,a,input,select{outline-color:var(--teal)}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin-top:0}h1{font-size:29px;line-height:1.4;margin-bottom:0;letter-spacing:.5px}h2{font-size:26px;line-height:1.5;letter-spacing:.5px}h3{font-size:17px;line-height:1.5;margin-bottom:14px}p{margin-bottom:13px}.sidebar{position:fixed;left:0;top:0;width:238px;height:100vh;background:var(--nav);color:#e4eef2;padding:30px 21px;display:flex;flex-direction:column}.brand{display:flex;gap:11px;align-items:center;font-size:16px;font-weight:700;letter-spacing:.3px}.brand-icon{display:grid;place-items:center;width:40px;height:42px;border:1px solid #618687;border-radius:12px;color:#89c9bc;font-size:32px;font-weight:400}.brand small{display:block;font-size:9px;letter-spacing:2.5px;color:#97adbb}.workspace-label{margin:36px 10px 10px;color:#93a9b8;font-size:11px;letter-spacing:1px}.nav{display:flex;align-items:center;width:100%;padding:13px 12px;margin-bottom:7px;background:none;border:0;border-radius:8px;color:#acbfca;text-align:left;font-weight:600}.nav span{font-size:11px;margin-right:15px;color:#6f8a9b}.nav.active{background:#214252;color:#fff}.nav.active span{color:#94d8c7}.nav:hover{background:#1a3749}.side-bottom{margin-top:auto;padding:15px 9px 0;border-top:1px solid #2d4555;font-size:12px;color:#9eb1be}.side-bottom p{font-size:11px;margin-top:9px}.side-bottom a{color:#c2e3dc}.side-bottom small{display:block;margin-top:16px;font-size:10px;letter-spacing:1px}.local-dot:before{content:'';display:inline-block;width:6px;height:6px;background:#73c8af;border-radius:50%;margin-right:7px}main{margin-left:238px;max-width:1780px;padding:28px 34px 18px}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:23px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--muted);margin-bottom:6px}.header-tools{display:flex;gap:12px;align-items:center}.badge{display:inline-block;border-radius:6px;padding:3px 9px;background:var(--pale);color:var(--teal);font-size:11px;font-weight:700;white-space:nowrap}.badge.neutral{background:#edf1f5;color:var(--muted)}.persistent-note{display:flex;gap:14px;align-items:center;background:#fff;border:1px solid var(--border);border-left:3px solid var(--teal);border-radius:7px;padding:10px 15px;margin-bottom:22px;font-size:12px;color:var(--muted)}.persistent-note b{color:var(--teal);white-space:nowrap}.tab{display:none}.tab.active{display:block}.hero{background:#e6efee;display:flex;justify-content:space-between;border-radius:13px;padding:28px 32px;margin-bottom:22px;border:1px solid #d7e4e0;gap:40px}.hero .eyebrow{color:#547a74;letter-spacing:1px;font-size:12px}.hero h2{font-size:31px;margin:10px 0;letter-spacing:2px}.hero p{color:#506d72;font-size:13px}.hero-right{min-width:260px;max-width:370px;border-left:1px solid #c8d9d4;padding:24px 0 0 30px;align-self:stretch}.smallcaps{font-size:10px;color:#62827c;letter-spacing:2px}.hero-right strong{display:block;font-size:20px;margin:8px 0 16px;overflow-wrap:anywhere}.hero-right p{font-size:12px}.primary,.secondary,.subtle{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:7px;font-weight:600;padding:9px 15px;transition:background .15s;border:1px solid transparent}.primary{background:var(--teal);color:white}.primary:hover{background:#0a605a}.secondary{background:#fff;border-color:var(--border);color:var(--ink)}.secondary:hover,.subtle:hover{background:#edf2f4}.subtle{background:none;border-color:var(--border);color:var(--muted);font-size:12px;padding:7px 12px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:22px}.metrics article{background:#fff;border:1px solid var(--border);border-radius:10px;padding:18px 21px}.metrics span{display:block;font-size:12px;color:var(--muted)}.metrics strong{display:block;font-size:34px;font-weight:600;font-variant-numeric:tabular-nums;margin:2px 0}.metrics small{color:#8794a2;font-size:11px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-bottom:22px}.wide-left{grid-template-columns:1.8fr 1fr}.panel{padding:24px;background:#fff;border:1px solid var(--border);border-radius:11px;box-shadow:var(--shadow);min-width:0}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.section-heading h3{margin:0}.steps>div{display:flex;gap:16px;padding:13px 0;border-bottom:1px solid #edf0f4}.steps>div:last-child{border-bottom:0;padding-bottom:0}.steps b{display:grid;place-items:center;width:28px;height:28px;background:var(--pale);color:var(--teal);border-radius:8px;font-size:12px;flex-shrink:0}.steps p{margin:0}.steps strong{display:block;font-size:13px}.steps span{display:block;color:var(--muted);font-size:12px;margin-top:3px}.job{padding:12px 0;border-bottom:1px solid #edf0f4}.job:last-child{border:0}.job-top{display:flex;justify-content:space-between;gap:8px}.job p{font-size:12px;color:var(--muted);margin:5px 0;word-break:break-word}.job summary{cursor:pointer;color:var(--teal);font-size:12px}.job pre{white-space:pre-wrap;overflow:auto;max-height:220px;font-size:11px;background:#f5f7f8;padding:12px}.progress{height:5px;border-radius:5px;background:#e8edf1;overflow:hidden;margin-top:8px}.progress i{display:block;height:100%;background:var(--teal)}.section-intro{margin-bottom:22px}.section-intro h2{font-size:23px;margin-bottom:6px}.section-intro p{color:var(--muted);font-size:13px}.muted{color:var(--muted);font-size:12px}.drop-zone{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1.5px dashed #b6c9c9;border-radius:10px;background:#f8fbfa;min-height:220px;padding:24px;text-align:center;cursor:pointer;margin-bottom:10px;gap:7px}.drop-zone strong{font-size:18px;font-weight:600}.drop-zone span,.drop-zone small{color:var(--muted);font-size:11px}.drop-zone .upload-icon{font-size:27px;color:var(--teal);background:#e4f0ed;width:45px;height:45px;border-radius:13px;display:grid;place-items:center}.drop-zone input{position:absolute;opacity:0;width:100%;height:100%;cursor:pointer}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:20px 0}.full{grid-column:1/-1}label{display:block;font-size:12px;color:#546779;font-weight:600}input:not([type=checkbox]):not([type=file]),select,textarea{width:100%;display:block;border:1px solid #d5dee6;background:#fff;border-radius:6px;color:var(--ink);padding:9px 10px;margin-top:5px;font-weight:400;min-width:0}input::placeholder{color:#9aa6b0;font-size:12px}input:focus,select:focus{border-color:var(--teal)}select{padding-right:8px}.note{padding:12px 14px;border-radius:7px;background:#edf5f3;font-size:12px;color:#466e68;margin:16px 0}.note.warning{background:var(--warn);color:#8a6531}.data-example{border-bottom:1px solid #edf1f4;padding:13px 0}.data-example b{font-size:13px;color:var(--teal)}.data-example p{font-size:12px;color:var(--muted);margin:6px 0}.review-toolbar{display:grid;grid-template-columns:140px 190px 1fr auto;gap:12px;margin-bottom:18px}.review-toolbar select{margin:0;font-size:12px}.review-toolbar button{font-size:12px}.review-grid{display:grid;grid-template-columns:300px minmax(0,1fr);gap:20px;align-items:start}.event-list-panel{padding:18px 12px}.event-list-panel .section-heading{padding:0 7px}.event-list{max-height:720px;overflow:auto}.event-item{display:block;width:100%;text-align:left;border:1px solid transparent;border-bottom:1px solid #edf0f3;background:#fff;padding:13px 10px;border-radius:7px;margin-bottom:5px}.event-item:hover{background:#f5f8fa}.event-item.selected{background:#eaf4f1;border-color:#b4d2c9}.event-item strong{display:block;font-size:12px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.event-item small{display:block;font-size:11px;color:var(--muted);margin-top:4px}.event-item .tag{margin-top:6px;display:block;font-size:10px;color:var(--teal)}.pager{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:14px}.pager span{font-size:11px;color:var(--muted)}.pager button{padding:5px 7px}.empty{text-align:center;padding:90px 12px;color:var(--muted)}.empty>span{font-size:36px;color:#aabebf}.empty h3{margin:20px 0 8px;font-weight:600}.empty p{font-size:12px}.review-detail video{width:100%;max-height:350px;background:#122331;border-radius:8px}.review-detail h3{overflow-wrap:anywhere}.audio-bar{display:flex;align-items:center;gap:15px;margin:14px 0}.audio-bar span{white-space:nowrap;font-size:12px;color:var(--muted)}audio{width:100%;height:36px}.clip-range{display:flex;align-items:flex-end;gap:10px;margin:10px 0}.clip-range label{width:110px}.clip-range input{font-size:12px;padding:6px!important}.analysis-box{border:1px solid var(--border);background:#f9fbfc;padding:17px;border-radius:8px;margin:22px 0}.analysis-box h3{font-size:14px}.score-row{display:flex;align-items:center;gap:12px;padding:5px 0;font-size:12px}.score-row span:first-child{width:170px}.score-bar{height:5px;background:#dfe8eb;border-radius:3px;flex:1}.score-bar i{display:block;height:100%;background:#57928a;border-radius:3px}.score-row em{font-size:11px;font-style:normal;font-variant-numeric:tabular-nums;min-width:35px;text-align:right}.label-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:15px 0}.label-option{padding:9px 10px;border:1px solid var(--border);border-radius:6px;display:flex;align-items:center;gap:8px;font-size:12px;cursor:pointer}.label-option:has(input:checked){background:var(--pale);border-color:#9ec8be;color:var(--teal)}input[type=checkbox]{accent-color:var(--teal);width:16px;height:16px;margin:0;flex-shrink:0}.checks{display:flex;flex-direction:column;gap:12px;margin:21px 0}.checks label{display:flex;gap:9px;align-items:flex-start;font-size:12px;font-weight:400}.checks input{margin-top:3px}.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.actions button,.actions a{font-size:12px}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12px}th{text-align:left;font-weight:600;font-size:11px;color:var(--muted);background:#f6f8fa;white-space:nowrap;padding:10px}td{padding:11px 10px;border-bottom:1px solid #edf0f3;vertical-align:top}td:first-child{min-width:160px}td select{margin:0;font-size:12px;padding:5px 10px}.split-counts{display:flex;gap:10px;margin-bottom:16px}.split-card{padding:12px;background:#f2f6f7;border-radius:7px;flex:1}.split-card span{font-size:11px;color:var(--muted);display:block}.split-card strong{font-size:22px;margin-right:6px}.split-card small{font-size:10px;color:var(--muted)}.report-panel .section-heading select{max-width:330px;margin:0}.report-panel h4{margin:20px 0 12px}.gate-fail{background:var(--warn);color:#7f5e2b;padding:14px;border-radius:8px;font-size:12px;margin:15px 0}.gate-pass{background:var(--pale);color:var(--teal);padding:14px;border-radius:8px;font-size:12px;margin:15px 0}.gate-fail li{margin:3px 0}.key-value{display:flex;justify-content:space-between;gap:15px;padding:10px 0;border-bottom:1px solid #edf1f5;font-size:12px}.key-value span{color:var(--muted)}.key-value strong{font-weight:500;overflow-wrap:anywhere;text-align:right}.path{font:11px/1.5 monospace;background:#f2f5f7;padding:10px;word-break:break-all;margin-top:13px}hr{border:0;border-top:1px solid var(--border);margin:24px 0}footer{display:flex;justify-content:space-between;color:#91a0ae;font-size:10px;padding:25px 2px 0}#toast{position:fixed;right:25px;bottom:25px;max-width:560px;padding:15px 20px;border-radius:9px;background:var(--nav);color:#fff;box-shadow:0 10px 40px #0003;z-index:999;font-size:13px;white-space:pre-line}#toast.error{background:#823e35}@media(min-width:1500px){main{padding-left:45px;padding-right:45px}.review-grid{grid-template-columns:340px minmax(0,1fr)}}@media(max-width:1150px){.sidebar{width:200px;padding:25px 14px}.brand{font-size:14px}main{margin-left:200px;padding:25px 22px}.review-toolbar{grid-template-columns:1fr 1fr}.wide-left{grid-template-columns:1fr}.review-grid{grid-template-columns:240px minmax(0,1fr)}.hero-right{min-width:210px;max-width:260px;padding-left:20px}.label-grid{grid-template-columns:1fr}.metrics{gap:10px}.metrics article{padding:16px}.two-col{gap:16px}}@media(max-width:800px){.sidebar{position:static;width:auto;height:auto;padding:15px}.sidebar nav{display:flex;flex-wrap:wrap;margin-top:12px}.nav{width:auto;padding:8px;font-size:11px}.nav span{display:none}.workspace-label,.side-bottom{display:none}main{margin:0;padding:20px 16px}.hero{display:block;padding:24px}.hero-right{border:0;padding:15px 0 0;max-width:none}.metrics{grid-template-columns:1fr 1fr}.two-col,.review-grid{grid-template-columns:1fr}.event-list{max-height:240px}.hero h2{font-size:26px}.panel{padding:18px}.persistent-note{align-items:flex-start}.form-grid{grid-template-columns:1fr}.header-tools .badge{display:none}.review-toolbar{grid-template-columns:1fr 1fr}footer{gap:15px}.score-row span:first-child{width:140px}}
/* Cloud shell / authentication */
.login-page{margin:0;min-height:100vh;background:#edf2f3;display:grid;place-items:center;padding:32px;box-sizing:border-box}
.login-layout{width:min(1060px,100%);display:grid;grid-template-columns:1.05fr 1fr;background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 24px 80px rgba(18,45,57,.12)}
.login-story{padding:58px 48px;background:#123b45;color:#edf7f7;display:flex;flex-direction:column;justify-content:center}
.login-story .eyebrow{color:#a5d7d7;letter-spacing:2px;font-size:11px}.login-story h1{font-size:37px;line-height:1.5;letter-spacing:1px;margin:4px 0 14px}.login-symbol{font-size:76px;line-height:1.2;color:#73c5bd;margin-top:24px}.login-story p{font-size:18px;letter-spacing:2px}.login-flow{padding:20px 0;border-top:1px solid #45646b;margin-top:14px;font-size:12px}.login-story small{font-size:11px;color:#b1c6ca}
.login-card{padding:66px 46px}.login-card h2{font-size:29px;margin:20px 0 14px}.login-card label{display:block;margin:20px 0 0}.login-card input{display:block;width:100%;box-sizing:border-box;margin-top:9px;padding:12px}.login-card .primary{width:100%;margin-top:24px;padding:14px}.login-message{font-size:13px;line-height:1.6;color:#9c4530;min-height:22px}.login-disclosure{padding-top:24px;margin-top:10px;border-top:1px solid #e5ebed;font-size:12px;line-height:1.85}.login-disclosure b{color:#31454b}.login-disclosure p{color:#667d84;margin:4px 0 0}.login-card .note{font-size:12px}
.storage-meter{height:8px;border-radius:20px;overflow:hidden;background:#e6ecef;margin:12px 0}.storage-meter i{display:block;height:100%;background:#40857e}.cloud-notice{margin:0 0 18px}#current-user{font-size:12px}#logout-btn{white-space:nowrap}
@media(max-width:760px){.login-page{padding:18px}.login-layout{grid-template-columns:1fr}.login-story{padding:26px 30px}.login-story h1{font-size:25px;line-height:1.4}.login-symbol{display:none}.login-story p,.login-flow,.login-story small{display:none}.login-card{padding:30px}.header-tools{flex-wrap:wrap}.header-tools .badge{display:none}}
