:root{font-family:Inter,Segoe UI,Microsoft YaHei,sans-serif;color:#243042;background:#f5f7fa;font-synthesis:none;font-size:14px;font-weight:400}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;transition:background .18s,transform .18s}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #89d8c5;outline-offset:3px}input,select{border:1px solid #dce2e8;background:#fff;border-radius:8px;padding:12px 13px;color:#243042;min-width:0}input::placeholder{color:#a1aab7}label{display:flex;flex-direction:column;gap:9px;font-size:13px;font-weight:500}h1,h2,h3,p{margin:0}h1{font-size:28px;letter-spacing:-.9px;font-weight:650}h3{font-size:15px}small{display:block}strong{font-weight:600}.primary,.secondary,.danger-outline{padding:12px 18px;border-radius:8px;font-weight:600;white-space:nowrap}.primary{background:#13876f;color:#fff;box-shadow:0 3px 7px #11836a14}.primary:hover:not(:disabled){background:#0b715c}.secondary{background:#fff;border:1px solid #dce3e9;color:#455165}.secondary:hover{background:#f4f7f8}.danger-outline{background:#fff;border:1px solid #eed6d7;color:#c4565b}.danger-outline:hover{background:#fff2f3}.full{width:100%}.muted{color:#8b95a3;line-height:1.8}.eyebrow{font-size:10px;letter-spacing:2px;color:#84919e;font-weight:700}.text-button{color:#718093;background:none;padding:6px;font-size:12px}.brand{display:flex;gap:11px;align-items:center;font-size:20px;font-weight:650;letter-spacing:.5px}.brand-mark{width:42px;height:42px;border-radius:13px;color:#fff;background:#168c74;display:grid;place-items:center}.brand small{font-size:10px;color:#80919f;letter-spacing:1px;font-weight:400;margin-top:4px}.version{font-size:9px;letter-spacing:2px;color:#8ea2ab;font-weight:400;padding-top:5px}.login-shell{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr}.login-art{background:#102c2d;padding:44px 56px;color:#fff;position:relative;overflow:hidden;background-image:radial-gradient(ellipse at 80% 65%,#1c554b 0,transparent 60%)}.login-art .brand-mark{background:#2fa78b}.login-copy{max-width:500px;margin:88px auto 60px}.login-copy .eyebrow{color:#74bfad;font-size:12px;letter-spacing:3px}.login-copy h1{font-size:58px;line-height:1.35;margin:23px 0;letter-spacing:-1px}.login-copy p{color:#a8bfbb;line-height:1.9;font-size:16px}.art-screen{width:330px;height:190px;border:1px solid #ffffff25;background:#ffffff08;border-radius:12px;margin:50px 0 0 35px;position:relative;transform:rotate(-5deg);box-shadow:0 25px 65px #0003}.art-dots{font-size:10px;letter-spacing:5px;color:#688b85;padding:12px 18px;border-bottom:1px solid #ffffff15}.art-lines{padding:24px}.art-lines i{display:block;height:8px;background:#547e74;width:70%;margin-bottom:16px;border-radius:4px}.art-lines i:nth-child(2){width:45%}.art-lines i:last-child{width:55%;background:#519b87}.art-circle{position:absolute;top:107px;left:13px;width:196px;height:45px;border:3px solid #ffd36b;border-radius:50%;transform:rotate(6deg)}.art-pointer{position:absolute;right:68px;bottom:26px;font-size:40px;color:#ffd36b}.art-note{position:absolute;right:-40px;bottom:-20px;padding:14px 18px;background:#d8f3e9;color:#20594c;border-radius:8px;box-shadow:0 5px 20px #0003;font-size:13px;font-weight:600;transform:rotate(5deg)}.login-foot{display:flex;gap:9px;align-items:center;position:absolute;bottom:32px;font-size:11px;color:#90afa6}.login-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;background:#fff;position:relative}.login-card{width:100%;max-width:350px}.login-card h2{font-size:27px;letter-spacing:-.7px;margin:17px 0 10px}.login-card form:not(.server-form){display:flex;flex-direction:column;gap:20px;margin-top:36px}.login-card .primary{margin-top:8px;padding:14px;justify-content:space-between}.login-hint{font-size:12px;color:#9aa3af;text-align:center;margin-top:25px}.server-setting{margin-top:19px}.server-form{display:flex;gap:8px;margin-top:10px}.server-form input{width:100%}.client-label{position:absolute;bottom:30px;display:flex;gap:9px;align-items:center;color:#a0a8b3;font-size:11px}.client-label span{margin:0 7px;color:#ccd2d9}.dev-entry{border-top:1px dashed #e0e6e9;margin-top:22px;padding-top:15px;display:flex;flex-wrap:wrap;gap:8px}.dev-entry span{width:100%;font-size:11px;color:#9aa3af}.dev-entry button{padding:7px 9px;border-radius:5px;background:#f2f7f5;color:#3d7e6c;font-size:11px}.app-shell{display:flex;min-height:100vh}.sidebar{width:222px;position:fixed;inset:0 auto 0 0;background:#fff;border-right:1px solid #e7ebef;padding:29px 19px;display:flex;flex-direction:column;z-index:10}.sidebar .brand{margin:0 9px 50px;font-size:19px}.nav-label{font-size:10px;letter-spacing:1.5px;color:#a1aab6;margin:0 16px 13px}nav{display:flex;flex-direction:column;gap:7px}nav button{justify-content:flex-start;padding:13px 16px;border-radius:8px;background:none;color:#7c8997;font-size:13px;position:relative}nav button.active{color:#16876f;background:#eaf5f1;font-weight:600}nav button:hover{background:#f2f6f5}.nav-dot{width:6px;height:6px;border-radius:50%;background:#229e7c;margin-left:auto}.sidebar-bottom{margin-top:auto}.connection-note{font-size:11px;color:#668178;padding:16px 12px;margin-bottom:20px;border:1px solid #e7efeb;border-radius:8px}.connection-note small{color:#9ba8a3;font-size:10px;margin-top:8px}.green-dot{display:inline-block;width:6px;height:6px;background:#29a982;border-radius:50%;margin-right:6px}.profile{width:100%;background:none;justify-content:flex-start;text-align:left;border-top:1px solid #edf0f2;padding:19px 0 0;gap:10px}.profile>span:nth-child(2){font-size:12px;flex:1}.profile small{font-size:10px;color:#9ba5b1;margin-top:4px}.profile>svg{color:#9ba5b1}.avatar{width:35px;height:35px;display:grid;place-items:center;border-radius:10px;background:#dfeee8;color:#458472;font-size:11px}.avatar.small{width:34px;height:34px;border-radius:50%}.user-avatar{background:#edf0f5;color:#8694a7}main{margin-left:222px;width:calc(100% - 222px)}.topbar{height:70px;background:#fff;border-bottom:1px solid #e7ebef;display:flex;justify-content:space-between;align-items:center;padding:0 34px}.breadcrumb{display:flex;align-items:center;gap:14px;font-size:12px;color:#a1aab6}.breadcrumb strong{color:#526071;font-weight:500}.topbar-right{display:flex;align-items:center;gap:22px;color:#9ba5b0;font-size:11px}.soft-badge{display:flex;align-items:center;gap:6px;background:#f1f7f4;padding:6px 9px;color:#63927f;border-radius:5px}.main-content{padding:32px 34px;max-width:1700px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:5px 0 28px}.page-heading h1{margin:10px 0}.page-heading p{color:#8d99a8;font-size:12px;line-height:1.7}.workspace-grid{display:grid;grid-template-columns:minmax(0,1fr) 282px;gap:22px;align-items:start}.viewer-card{border:1px solid #e1e7ed;background:#fff;border-radius:11px;overflow:hidden;box-shadow:0 6px 20px #202d3f03}.viewer-header{height:59px;padding:0 20px;display:flex;justify-content:space-between;align-items:center}.viewer-header>div{display:flex;align-items:center;gap:10px}.viewer-header strong{font-size:12px}.live-dot{width:7px;height:7px;border-radius:50%;background:#b0bac5}.live-dot.on{background:#22af88;box-shadow:0 0 0 4px #e7f6ef}.status-pill{font-size:10px;background:#f2f5f8;color:#929dab;padding:5px 8px;border-radius:5px;white-space:nowrap}.viewer-actions button{padding:5px;background:none;color:#8c98a7}.timecode{font-family:Consolas,monospace;font-size:12px;color:#8090a0}.video-stage{height:clamp(320px,49vh,650px);min-width:0;background:#101923;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;background-image:radial-gradient(#ffffff08 .7px,transparent .7px);background-size:18px 18px}.video-viewport{position:relative;flex-shrink:0;background:#101923}.video-viewport:fullscreen{width:100vw!important;height:100vh!important;object-fit:contain}.video-viewport video{width:100%;height:100%;display:block;object-fit:fill}.annotation-layer{position:absolute;inset:0;touch-action:none}.annotation-layer .canvas-container{position:absolute!important;inset:0}.annotation-layer.readonly{pointer-events:none}.empty-screen{text-align:center;padding:25px;color:#e0e6ec}.screen-illustration{position:relative;width:92px;height:85px;margin:0 auto 25px;color:#53727a;display:grid;place-items:center}.screen-illustration:before{content:"";position:absolute;inset:0;background:#243a41;border-radius:22px;transform:rotate(-8deg);opacity:.7}.screen-illustration>svg{z-index:1}.screen-illustration>span{position:absolute;right:-3px;top:0;width:31px;height:31px;border-radius:10px;background:#154c40;color:#63c7a5;display:grid;place-items:center;z-index:2}.empty-screen h3{font-size:17px;font-weight:500}.empty-screen p{font-size:11px;color:#768695;margin:13px 0 34px;line-height:1.8}.empty-steps{display:flex;gap:13px;align-items:center;justify-content:center;font-size:10px;color:#728593}.empty-steps i{width:18px;height:1px;background:#344552}.viewer-bottom{height:38px;display:flex;align-items:center;justify-content:space-between;padding:0 17px;background:#fdfefe;border-bottom:1px solid #eef1f4;font-size:10px;color:#98a2ae}.viewer-bottom>span{display:flex;align-items:center;gap:7px}.viewer-bottom b{font-weight:400;color:#54a58e}.viewer-bottom i{height:9px;width:1px;background:#d9dfe5;margin:0 3px}.annotation-toolbar{padding:13px 16px;display:flex;gap:12px;align-items:center;flex-wrap:wrap;min-height:78px}.tool-group{display:flex;gap:6px}.tool-group button{width:45px;height:50px;flex-direction:column;gap:5px;background:none;color:#7c899b;border-radius:7px;font-size:9px}.tool-group button.selected{background:#eaf5f1;color:#1e8b73}.tool-group button:hover{background:#f3f6f6}.tool-divider{height:27px;width:1px;background:#e8ecf0}.color-input{padding:3px;width:27px;height:27px;border-radius:50%;border:1px solid #e4e9ef;cursor:pointer}.color-input::-webkit-color-swatch-wrapper{padding:0}.color-input::-webkit-color-swatch{border:0;border-radius:50%}.clear-button{background:none;color:#9aa5b2;padding:6px}.annotation-text{font-size:12px;width:100%;padding:9px}.session-panel{background:#fff;border:1px solid #e1e7ed;border-radius:11px;padding:23px 21px}.panel-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.small-label{font-size:8px;color:#adb6bf;letter-spacing:1.5px}.session-panel>.muted{font-size:12px;margin:0 0 20px}.field-label{font-size:11px;color:#939eab}.room-code{font-size:29px;letter-spacing:1.7px;font-weight:650;font-family:Consolas,monospace;margin:10px 0;display:flex;align-items:center;justify-content:space-between;color:#29384a}.room-code button{background:none;color:#99a5b3;padding:4px}.room-expiry{font-size:10px;color:#a0a9b6;margin-bottom:24px}.participant{display:flex;gap:10px;align-items:center;padding:12px 0;border-top:1px solid #f0f2f5}.participant>div{flex:1}.participant strong{font-size:11px;font-weight:500}.participant small{font-size:9px;color:#9ba5b2;margin-top:5px}.session-panel .full{margin-top:12px;font-size:12px}.quality-section{padding-top:21px;margin-top:8px;border-top:1px solid #edf0f3}.quality-section select{width:100%;font-size:10px;padding:10px;margin-top:10px}.quality-section p{font-size:10px;color:#9ca7b3;line-height:1.8;margin-top:10px}.quality-badge{display:flex;align-items:center;gap:7px;color:#618c7d;background:#f5f9f7;padding:10px;font-size:10px;margin-top:10px;border-radius:6px}.session-tip{display:flex;gap:10px;padding-top:23px;margin-top:23px;border-top:1px solid #eaf0f2;color:#8a9b99}.session-tip>svg{flex-shrink:0}.session-tip strong{font-size:11px;font-weight:500;color:#6e8580}.session-tip p{font-size:10px;line-height:1.8;margin-top:7px;color:#9aa7a4}.code-input{width:100%;font-size:21px;letter-spacing:2px;text-align:center;padding:16px 6px}.waiting-note{font-size:11px;background:#fff8e9;color:#ae8a46;padding:12px;line-height:1.6;border-radius:6px;margin-top:10px}.workspace-foot{display:flex;justify-content:space-between;align-items:center;margin-top:18px;color:#a0aab6;font-size:10px}.workspace-foot>span{display:flex;gap:7px;align-items:center}.alert{display:flex;justify-content:space-between;gap:12px;padding:12px 15px;border-radius:7px;font-size:12px;margin-bottom:16px;line-height:1.7}.alert button{background:none;color:inherit;align-self:start}.alert.error{background:#fff0f0;color:#bd5358;border:1px solid #f5dada}.alert.info{background:#edf6f3;color:#538271;border:1px solid #dbece4}.login-card .alert{margin-top:16px}.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:23px}.stats-row>div{background:#fff;border:1px solid #e3e8ed;border-radius:9px;padding:23px}.stats-row span{font-size:12px;color:#8c99a6}.stats-row strong{display:block;font-size:30px;margin-top:17px;color:#334657}.stats-row small{display:inline;font-size:11px;color:#a0abb5;font-weight:400}.table-card{border:1px solid #e3e8ed;border-radius:9px;background:#fff;overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}th{background:#fafbfc;color:#8e9aa8;font-size:11px;font-weight:500;padding:16px 19px}td{padding:19px;font-size:12px;border-top:1px solid #f0f3f6;color:#68788b}td small{font-size:10px;color:#a6afbb;margin-top:5px}.mono{font-family:Consolas,monospace;color:#334c60;letter-spacing:1px}.table-empty{padding:60px;text-align:center;color:#a2acb8;font-size:12px}.staff-form{display:flex;flex-wrap:wrap;align-items:end;gap:15px;padding:23px;border:1px solid #e2e8ec;background:#fff;border-radius:9px;margin-bottom:24px}.staff-form label{flex:1;min-width:140px;font-size:11px}.staff-form input{font-size:12px;width:100%}@media(min-width:1600px){.main-content{padding-top:42px}.page-heading{margin-bottom:33px}.workspace-grid{grid-template-columns:minmax(0,1fr) 310px}}@media(max-width:1150px){.sidebar{width:185px;padding:25px 13px}.sidebar .brand{font-size:17px;margin-left:0;gap:8px}.brand-mark{width:37px;height:37px}main{margin-left:185px;width:calc(100% - 185px)}.main-content{padding:25px 22px}.workspace-grid{grid-template-columns:minmax(0,1fr) 245px;gap:15px}.session-panel{padding:20px 16px}.tool-group{gap:0}.tool-group button{width:38px}.annotation-toolbar{gap:8px;padding:11px}.room-code{font-size:25px}.topbar{padding:0 22px}.page-heading h1{font-size:25px}}@media(max-width:900px){.sidebar{width:72px;padding:22px 10px}.sidebar .brand{margin:0 auto 40px;justify-content:center}.sidebar .brand>span:last-child,.nav-label,.sidebar nav button svg~*,.connection-note,.profile>span:nth-child(2),.profile>svg{display:none}.sidebar nav button{font-size:0;padding:15px;gap:0;justify-content:center}.sidebar nav button svg{flex-shrink:0}.profile{justify-content:center}.sidebar nav button.active{background:#eaf5f1}main{margin-left:72px;width:calc(100% - 72px)}.workspace-grid{grid-template-columns:minmax(0,1fr)}.session-panel{display:flex;flex-wrap:wrap;gap:13px;align-items:center}.panel-title{width:100%;margin:0 0 8px}.session-panel .field-label,.room-expiry,.session-tip,.quality-section{width:100%}.session-panel .room-code{margin:0}.session-panel .participant{border:0;padding:0 12px;flex:1;min-width:140px}.session-panel .full{width:auto;flex:1;margin:0;min-width:130px}.session-panel form{display:flex;gap:12px;flex:1}.quality-section{margin:0;padding-top:15px}.quality-section p{display:none}.quality-section select{max-width:280px;margin:0 0 0 15px}.quality-badge{display:inline-flex;margin:0 0 0 15px}.session-tip{display:none}.video-stage{height:48vh}.login-copy h1{font-size:45px}.login-art{padding:35px}.art-screen{width:250px;margin-left:0}.art-note{right:-18px}.topbar-right>span:last-child{display:none}}@media(max-width:600px){.login-shell{grid-template-columns:1fr}.login-art{display:none}.login-panel{min-height:100dvh;padding:26px}.sidebar{width:58px;padding:20px 6px}.sidebar .brand-mark{width:34px;height:34px;border-radius:11px}.sidebar nav button{padding:13px 8px}main{margin-left:58px;width:calc(100% - 58px)}.topbar{height:53px;padding:0 15px}.breadcrumb{font-size:10px;gap:7px}.topbar-right{display:none}.main-content{padding:20px 12px}.page-heading{align-items:start;gap:10px;margin:0 0 18px}.page-heading h1{font-size:21px;line-height:1.45;max-width:220px}.page-heading p{font-size:10px}.page-heading>.primary{padding:9px;font-size:10px;gap:3px}.page-heading>.primary svg{width:13px}.eyebrow{font-size:8px;letter-spacing:1.4px}.viewer-header{padding:0 11px;height:48px}.viewer-header>div{gap:6px}.viewer-header strong{font-size:11px}.viewer-header .status-pill{display:none}.video-stage{height:37vh;min-height:235px}.empty-screen{padding:15px}.empty-screen h3{font-size:14px}.empty-screen p{font-size:10px;margin-bottom:22px}.screen-illustration{transform:scale(.8);margin-bottom:10px}.empty-steps{font-size:8px;gap:7px}.empty-steps i{width:9px}.viewer-bottom{font-size:8px;padding:0 9px}.viewer-bottom b{display:none}.annotation-toolbar{gap:8px;padding:8px}.tool-group{width:100%;justify-content:space-between}.tool-group button{width:34px;font-size:8px}.tool-divider{display:none}.session-panel{padding:17px 13px;gap:12px}.room-code{font-size:24px}.session-panel .participant{padding:0;min-width:100px}.quality-section select{max-width:100%;margin:10px 0 0}.quality-badge{margin-left:0;margin-top:9px}.workspace-foot{font-size:8px;gap:5px}.stats-row{gap:8px}.stats-row>div{padding:13px 10px}.stats-row span{font-size:9px}.stats-row strong{font-size:24px}.stats-row small{font-size:8px}.alert{font-size:10px}.staff-form{padding:16px}.staff-form label{min-width:100%}}@media(orientation:landscape)and (max-height:550px){.topbar,.page-heading,.workspace-foot{display:none}.main-content{padding:10px}.workspace-grid{grid-template-columns:minmax(0,1fr) 210px;gap:10px}.session-panel{display:block;padding:13px}.session-panel .full{width:100%;margin-top:8px}.session-panel .participant{padding:7px 0}.session-panel .room-expiry,.session-panel .quality-section,.session-panel .field-label,.panel-title .small-label{display:none}.video-stage{height:calc(100dvh - 160px);min-height:170px}.annotation-toolbar{min-height:55px;padding:5px 9px}.tool-group{width:auto}.tool-group button{height:41px}.session-panel .room-code{font-size:24px;margin:15px 0}.sidebar .brand{margin-bottom:17px}}
