:root{font-family:"Microsoft YaHei UI","Segoe UI",sans-serif;color:#e9edf2;background:#171a1f;--panel:#242931;--line:#3b424d;--accent:#43a5ff}
*{box-sizing:border-box}body{margin:0;overflow:hidden}button,select,input,textarea{font:inherit}button,.file-button{border:1px solid #525c69;background:#303741;color:#f4f6f8;border-radius:5px;padding:6px 10px;cursor:pointer}button:hover,.file-button:hover{background:#3b4654}button:disabled{opacity:.45;cursor:not-allowed}kbd{color:#c7d0da;font-size:13px;font-weight:600;margin-left:9px}.file-button input{display:none}
header{height:58px;display:flex;align-items:center;gap:18px;padding:0 14px;background:#20242b;border-bottom:1px solid var(--line)}.title{font-size:19px;font-weight:700;white-space:nowrap}nav{display:flex;align-items:center;gap:7px;min-width:0;flex:1}.inline{font-size:13px;color:#cad1d9}.compact{padding:5px 8px}.workbar{height:48px;display:flex;align-items:center;gap:10px;padding:6px 12px;background:#292f37;border-bottom:1px solid var(--line);font-size:13px}.workbar select{min-width:260px;max-width:420px;background:#171a1f;color:#fff;border:1px solid #56606d;padding:6px}.workbar input[type=number]{width:48px;background:#171a1f;color:#fff;border:1px solid #56606d;padding:4px}.workbar input[type=color]{width:34px;height:27px;padding:1px;border:0;background:transparent;vertical-align:middle}#status{margin-left:auto;color:#8ed0ff;white-space:nowrap;max-width:34%;overflow:hidden;text-overflow:ellipsis}
main{height:calc(100vh - 106px);display:grid;grid-template-columns:minmax(360px,1fr) 7px 430px;background:#111419}.main-pane,aside{min-height:0;min-width:0;background:var(--panel)}.main-pane{display:flex;flex-direction:column}.canvas-title{height:34px;padding:8px 10px;font-weight:650}.canvas-title small{font-weight:400;color:#aeb6c0;margin-left:12px}.canvas-wrap{position:relative;flex:1;min-height:0;background:#30343b;overflow:hidden}.canvas-wrap canvas,.detail-wrap canvas{display:block;width:100%;height:100%}#empty{position:absolute;inset:0;display:grid;place-items:center;color:#aeb6c0;pointer-events:none}aside{display:grid;grid-template-rows:34px minmax(150px,42%) 7px minmax(0,1fr)}.detail-wrap{min-height:0;background:#20242a}.side-scroll{min-height:0;overflow:auto}.splitter{position:relative;background:#111419;z-index:5}.splitter::after{content:"";position:absolute;background:#56616e;border-radius:3px}.splitter:hover,.splitter.dragging{background:#273d51}.splitter.vertical{cursor:col-resize}.splitter.vertical::after{width:2px;height:44px;left:2px;top:calc(50% - 22px)}.splitter.horizontal{cursor:row-resize}.splitter.horizontal::after{height:2px;width:44px;top:2px;left:calc(50% - 22px)}.point-info{font:13px/1.55 Consolas,"Microsoft YaHei UI",monospace;padding:8px 10px;min-height:90px;background:#1d2127;white-space:pre-wrap}.metadata-summary{padding:7px 10px;background:#222831;border-top:1px solid var(--line);font-size:12px;line-height:1.5;color:#c9d2dc;cursor:pointer}.metadata-summary:hover{background:#2b3541}.labels{display:grid;grid-template-columns:repeat(2,1fr);gap:5px;padding:8px;border-top:1px solid var(--line)}.label-button{display:flex;justify-content:space-between;align-items:center;border-left:5px solid var(--label-color);padding:5px 8px}.label-button.active{outline:2px solid #fff;background:#46515f}.review{display:grid;gap:6px;padding:8px;border-top:1px solid var(--line);font-size:13px}.review label{display:grid;grid-template-columns:75px 1fr;align-items:start;gap:7px}.review select,.review textarea{width:100%;background:#171a1f;color:#fff;border:1px solid #56606d;padding:4px;resize:vertical}
dialog{color:#edf2f7;background:#252b33;border:1px solid #697583;border-radius:8px;box-shadow:0 15px 50px #000b}dialog::backdrop{background:#0009}dialog h2{margin-top:0}dialog table{border-collapse:collapse;margin-bottom:16px}dialog td{border-bottom:1px solid #414955;padding:7px 15px}dialog td:first-child{text-align:right;color:#8ed0ff;font-family:Consolas,monospace}
.metadata-dialog{width:min(700px,92vw)}.metadata-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px}.metadata-grid label{display:grid;grid-template-columns:145px 1fr;align-items:center;gap:8px;font-size:13px}.metadata-grid input,.metadata-grid select{min-width:0;width:100%;background:#171a1f;color:#fff;border:1px solid #56606d;padding:6px}.scale-info{min-height:24px;color:#64d69a;margin-top:12px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px}.dialog-actions button[value=default]{background:#1769aa}.resizing{user-select:none;cursor:col-resize}.resizing-row{user-select:none;cursor:row-resize}
.detail-wrap canvas{cursor:grab}.detail-wrap canvas:active{cursor:grabbing}
.current-user{font-size:12px;color:#83d6ad;margin-left:auto;white-space:nowrap}.platformbar{height:42px;display:flex;align-items:center;gap:7px;padding:5px 12px;background:#202a34;border-bottom:1px solid #44515e;font-size:13px}.platformbar select{min-width:170px;max-width:285px;background:#171a1f;color:#fff;border:1px solid #56606d;padding:5px}.platformbar button{padding:5px 8px}.platformbar #workflowState{margin-left:auto;color:#b7c5d4;white-space:nowrap}main{height:calc(100vh - 148px)}
.auth-dialog{width:min(440px,92vw)}.auth-dialog form,.auth-dialog>label{display:grid;gap:12px}.auth-dialog label{display:grid;gap:5px}.auth-dialog input,.auth-dialog textarea,.management-dialog input,.management-dialog select{background:#171a1f;color:#fff;border:1px solid #56606d;padding:7px;border-radius:4px}.error-text{min-height:20px;color:#ff8b8b}.management-dialog{width:min(980px,94vw);max-height:86vh}.wide-dialog{width:min(1300px,97vw)}.inline-form{display:flex;gap:8px;margin-bottom:13px}.inline-form input{min-width:150px;flex:1}.table-wrap{max-height:58vh;overflow:auto;border:1px solid #46505c}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th{position:sticky;top:0;background:#303843;z-index:1}.data-table th,.data-table td{padding:7px;border-bottom:1px solid #414955;text-align:left;white-space:nowrap}.data-table input,.data-table select{max-width:145px;padding:4px}.data-table button{padding:4px 7px}.primary{background:#1769aa}.danger{background:#8b2e38}.review-summary{white-space:pre-wrap;line-height:1.6;padding:8px;background:#1b2026;border-radius:5px}.status-badge{display:inline-block;border-radius:12px;padding:2px 8px;background:#3b4654}.status-approved{background:#236343}.status-rejected{background:#7a3038}.status-submitted{background:#695d21}.hidden{display:none!important}
@media(max-width:1250px){.platformbar button:nth-of-type(n+4){display:none}.current-user{display:none}}
@media(max-width:1000px){main{grid-template-columns:minmax(330px,1fr) 7px 350px}.workbar label:nth-of-type(n+3){display:none}.canvas-title small{display:none}header nav .inline{display:none}.metadata-grid{grid-template-columns:1fr}.platformbar #workflowState{display:none}}
.module-entry,.workflow-link{display:inline-flex;align-items:center;text-decoration:none}.workflow-link{border:1px solid #526170;background:#2e3945;color:#dcecff;border-radius:5px;padding:5px 9px}.workflow-link:hover{background:#3a4a59}.module-entry{white-space:nowrap}

/* Desktop-style application menu */
header{height:42px;padding:0 10px;gap:12px}.title{font-size:15px}.menubar{height:100%;gap:1px;overflow:visible}.app-menu{position:relative;height:100%;display:flex;align-items:center}.menu-trigger{border:0;background:transparent;border-radius:3px;padding:7px 10px}.app-menu.open>.menu-trigger,.menu-trigger:hover{background:#3a424d}.menu-panel{display:none;position:absolute;z-index:40;left:0;top:38px;min-width:250px;padding:5px;background:#252b33;border:1px solid #56606d;border-radius:5px;box-shadow:0 12px 32px #0009}.app-menu.open>.menu-panel{display:grid}.menu-item,.menu-check,.menu-control{display:flex;align-items:center;width:100%;min-height:31px;border:0;border-radius:3px;background:transparent;color:#edf2f7;padding:6px 9px;text-align:left;white-space:nowrap}.menu-item{justify-content:space-between}.menu-item:hover,.menu-check:hover{background:#3b4654}.menu-item kbd{margin-left:28px}.menu-link{text-decoration:none}.menu-check{gap:8px;font-size:13px;cursor:pointer}.menu-control{justify-content:space-between;gap:12px;font-size:13px}.menu-control input[type=number]{width:58px;background:#171a1f;color:#fff;border:1px solid #56606d;padding:3px 5px}.menu-control select{min-width:145px;background:#171a1f;color:#fff;border:1px solid #56606d;padding:4px 5px}.menu-control input[type=color]{width:45px;height:25px;border:0;padding:1px;background:transparent}.menu-separator{height:1px;background:#414955;margin:5px 3px}.menu-subtitle{padding:7px 9px 3px;color:#98a5b3;font-size:11px}.menu-scroll{max-height:72vh;overflow:auto}.workbar{height:40px;padding:4px 10px}.platformbar{height:42px}main{height:calc(100vh - 124px)}

/* Local-view toolbar: navigation and labels are stacked vertically */
aside{grid-template-rows:34px minmax(190px,48%) 7px minmax(0,1fr)}.detail-area{min-height:0;display:grid;grid-template-columns:112px minmax(0,1fr);background:#20242a}.point-toolbar{min-height:0;overflow-y:auto;padding:5px;background:#1b2026;border-right:1px solid var(--line)}.nav-point{width:100%;display:flex;align-items:center;justify-content:center;gap:6px;margin-bottom:4px;padding:5px 4px;font-weight:700}.nav-point small{font-weight:400;font-size:11px}.vertical-labels{display:grid;grid-template-columns:1fr;gap:4px;padding:4px 0;border-top:1px solid var(--line)}.vertical-labels .label-button{min-height:31px;font-size:12px;padding:4px 6px}.vertical-labels .label-button kbd{margin-left:4px}.dialog-hint{color:#aeb6c0;font-size:13px;margin-top:-6px}
.detail-title{display:flex;align-items:center;gap:8px}.detail-title>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-title #detailZoomLabel{margin-left:auto;color:#8ed0ff;font:600 13px Consolas,monospace;white-space:nowrap}

/* Light workbench theme */
html[data-theme="light"]{color-scheme:light}html[data-theme="light"] body{color:#17212b;background:#eef1f5}html[data-theme="light"] header{background:#fff;border-color:#cfd5dd}html[data-theme="light"] button,html[data-theme="light"] .file-button{background:#fff;color:#26323e;border-color:#b9c2cd}html[data-theme="light"] button:hover,html[data-theme="light"] .file-button:hover{background:#edf1f5}html[data-theme="light"] .menu-trigger{border:0;background:transparent}html[data-theme="light"] .app-menu.open>.menu-trigger,html[data-theme="light"] .menu-trigger:hover{background:#e8edf2}html[data-theme="light"] .menu-panel{background:#fff;border-color:#bbc4cf;box-shadow:0 12px 28px #52606f44}html[data-theme="light"] .menu-item,html[data-theme="light"] .menu-check,html[data-theme="light"] .menu-control{color:#17212b;background:transparent}html[data-theme="light"] .menu-item:hover,html[data-theme="light"] .menu-check:hover{background:#edf1f5}html[data-theme="light"] .menu-separator{background:#d8dee6}html[data-theme="light"] .menu-control input[type=number]{background:#fff;color:#17212b;border-color:#aeb8c3}html[data-theme="light"] .workbar{background:#f3f5f8;border-color:#cfd5dd}html[data-theme="light"] .workbar select,html[data-theme="light"] .platformbar select,html[data-theme="light"] .review select,html[data-theme="light"] .review textarea{background:#fff;color:#17212b;border-color:#aeb8c3}html[data-theme="light"] .platformbar{background:#e8edf3;border-color:#c5ccd5}html[data-theme="light"] .workflow-link{background:#fff;color:#25384b;border-color:#aeb8c3}html[data-theme="light"] main{background:#dfe4ea}html[data-theme="light"] .main-pane,html[data-theme="light"] aside{background:#f7f8fa}html[data-theme="light"] .canvas-wrap{background:#cfd5dc}html[data-theme="light"] .detail-area,html[data-theme="light"] .detail-wrap{background:#e5e9ee}html[data-theme="light"] .point-toolbar{background:#f1f3f6}html[data-theme="light"] .point-info{background:#fff;color:#17212b}html[data-theme="light"] .metadata-summary{background:#edf1f5;color:#344454}html[data-theme="light"] .metadata-summary:hover{background:#e2e8ef}html[data-theme="light"] .side-scroll{background:#fff}html[data-theme="light"] dialog{color:#17212b;background:#fff;border-color:#aeb8c3}html[data-theme="light"] .metadata-grid input,html[data-theme="light"] .metadata-grid select,html[data-theme="light"] .auth-dialog input,html[data-theme="light"] .auth-dialog textarea{background:#fff;color:#17212b;border-color:#aeb8c3}html[data-theme="light"] dialog td{border-color:#d8dee6}html[data-theme="light"] .review-summary{background:#eef2f6}
@media(max-width:1100px){.title{display:none}.menubar{gap:0}.menu-trigger{padding:7px 6px}.detail-area{grid-template-columns:98px minmax(0,1fr)}.current-user{display:none}}

/* Unified image/workflow row and local-view tools on the right */
.workbar{height:44px;gap:7px;padding:5px 10px;overflow-x:auto;overflow-y:hidden;white-space:nowrap}
.workbar #imageList{flex:1 1 320px;min-width:220px;max-width:390px}
.workbar #projectList,.workbar #taskList{flex:0 1 180px;min-width:135px;max-width:210px}
.workbar button,.workbar .workflow-link{flex:0 0 auto;padding:5px 8px}
.workbar .workflow-label{flex:0 0 auto;color:#cbd5df}
.workbar #workflowState{flex:0 1 170px;min-width:0;max-width:170px;overflow:hidden;text-overflow:ellipsis;color:#b7c5d4}
.workbar #status{flex:0 1 150px;min-width:55px;max-width:150px}
main{height:calc(100vh - 86px)}
.detail-area{grid-template-columns:minmax(0,1fr) 112px}
.point-toolbar{border-right:0;border-left:1px solid var(--line)}
html[data-theme="light"] .workbar .workflow-label{color:#344454}
html[data-theme="light"] kbd{color:#344454;font-weight:700}html[data-theme="light"] .menu-control select{background:#fff;color:#17212b;border-color:#aeb8c3}html[data-theme="light"] .detail-title #detailZoomLabel{color:#075985}
html[data-theme="light"] .label-button{border-left-color:var(--label-color)}html[data-theme="light"] .label-button.active{outline-color:#26323e;background:#dfe7ef}
@media(max-width:1250px){.workbar #imageList{max-width:300px}.workbar #workflowState{display:none}.workbar #status{max-width:100px}}
@media(max-width:1100px){.detail-area{grid-template-columns:minmax(0,1fr) 98px}.workbar #imageList{max-width:250px}.workbar #projectList,.workbar #taskList{min-width:125px;max-width:150px}}

.user-menu{position:relative;margin-left:auto;flex:0 0 auto}.user-menu-button{display:flex;align-items:center;gap:6px;max-width:250px}.user-menu-button .current-user{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu-panel{display:none;position:absolute;z-index:80;right:0;top:calc(100% + 5px);min-width:205px;padding:5px;background:#252b33;border:1px solid #56606d;border-radius:5px;box-shadow:0 12px 32px #0009}.user-menu.open .user-menu-panel{display:grid}.user-menu-panel .menu-item{justify-content:flex-start}
.workbar{position:relative}.workbar-actions{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:6px;z-index:2}.display-toggle{display:inline-flex;align-items:center;gap:5px;border:1px solid #56606d;border-radius:4px;padding:5px 8px;background:#20252b;color:#dbe4ed;cursor:pointer}.display-toggle input{margin:0}.view-only-mode .point-toolbar{box-shadow:inset 3px 0 #57a5ff}.view-only-mode .label-button{cursor:pointer}.view-only-mode .label-button span::before{content:"显示 ";font-size:10px;color:#9fabc0}.exclusion-active canvas{cursor:crosshair!important}.tool-active{outline:2px solid #ff6a5f!important;outline-offset:-2px}.workbar-actions button:disabled{opacity:.5;cursor:not-allowed}
html[data-theme="light"] .user-menu-panel{background:#fff;border-color:#bbc4cf;box-shadow:0 12px 28px #52606f44}html[data-theme="light"] .display-toggle{background:#fff;color:#26323e;border-color:#aeb8c3}html[data-theme="light"] .view-only-mode .label-button span::before{color:#385a78}
@media(max-width:1350px){.workbar-actions{position:static;transform:none;margin-left:auto}.workbar #status{display:none}}

/* Account menu and revised workbar layout */
.point-info{min-height:48px;padding:7px 10px;white-space:pre;overflow-x:auto}
.user-menu-button{max-width:250px;padding:6px 10px!important;background:#f4f5f6!important;color:#000!important;border-color:#aeb5bd!important}
.user-menu-button:hover{background:#e4e7ea!important}
.user-menu-button .current-user{margin-left:0;color:#000!important}
.user-menu-panel,html[data-theme="light"] .user-menu-panel{min-width:205px;background:#fff!important;color:#000;border-color:#bbc4cf;box-shadow:0 12px 28px #0005}
.user-menu-panel .menu-item{color:#000;background:transparent;justify-content:flex-start}
.user-menu-panel .menu-item:hover{background:#edf1f5}
.user-role-summary{padding:7px 9px;color:#000;font-size:12px;border-bottom:1px solid #d8dee6;margin-bottom:4px}
.workbar-actions{left:46%}
.exclusion-active canvas{cursor:inherit!important}
@media(max-width:1350px){.workbar-actions{left:auto;margin-left:20px}}
@media(max-width:1250px){.user-menu .current-user{display:inline-block;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
@media(max-width:700px){.user-menu .current-user{max-width:90px}}
