:root{--bg:#f6f7f4;--surface:#ffffff;--surface-muted:#eef0eb;--ink:#1d2522;--muted:#68716c;--line:#dfe3dd;--accent:#176b57;--accent-dark:#105444;--accent-soft:#e2f1ec;--danger:#b7433a;--danger-soft:#f8e9e7;--warning:#9a6b14;--warning-soft:#f6efd9;--success:#2f7650;--success-soft:#e6f2ea;--shadow:0 12px 36px rgba(28,42,36,0.1)}*{box-sizing:border-box}body,html{background:var(--bg)}body{margin:0;color:var(--ink);font-family:Inter,Segoe UI,Microsoft YaHei,sans-serif;letter-spacing:0;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;letter-spacing:0}a,button{-webkit-tap-highlight-color:transparent}a,button{color:inherit}a{text-decoration:none}.eyebrow{margin:0 0 5px;color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase}.primary-button,.secondary-button,.text-button{min-height:40px;border:0;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 16px;font-weight:700;cursor:pointer;white-space:nowrap}.primary-button{color:#fff;background:var(--accent)}.primary-button:hover{background:var(--accent-dark)}.secondary-button{color:var(--ink);background:var(--surface);border:1px solid var(--line)}.secondary-button:hover{border-color:#b9c1ba;background:#fafbf9}.text-button{background:transparent;color:var(--muted)}.primary-button:disabled,.secondary-button:disabled{opacity:.5;cursor:not-allowed}.full-button{width:100%}.icon-button{width:40px;height:40px;padding:0;border:1px solid var(--line);border-radius:6px;background:var(--surface);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex:0 0 auto}.icon-button:hover{background:var(--surface-muted)}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.login-shell{min-height:100svh;display:grid;place-items:center;padding:24px;background:#ecefea}.login-panel{width:min(100%,390px)}.brand-mark{width:46px;height:46px;display:grid;place-items:center;margin-bottom:28px;border-radius:7px;color:#fff;background:var(--accent)}.login-panel h1{margin:0;font-size:34px;line-height:1.15}.login-subtitle{margin:10px 0 30px;color:var(--muted)}.stack-form{display:grid;grid-gap:18px;gap:18px}.dialog-form label,.editor-form label,.stack-form label{display:grid;grid-gap:8px;gap:8px;color:#4f5954;font-size:13px;font-weight:700}.dialog-form input,.dialog-form select,.dialog-form textarea,.editor-form input,.editor-form select,.editor-form textarea,.stack-form input{width:100%;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);padding:11px 12px;outline:none}.dialog-form input:focus,.dialog-form select:focus,.dialog-form textarea:focus,.editor-form input:focus,.editor-form select:focus,.editor-form textarea:focus,.stack-form input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(23,107,87,.12)}.password-field{position:relative;display:block}.password-field input{padding-right:48px}.password-field .icon-button{position:absolute;right:2px;top:2px;border:0;background:transparent}.form-error{margin:-6px 0 0;color:var(--danger);font-size:13px}.app-shell{min-height:100svh}.sidebar{position:fixed;inset:0 auto 0 0;z-index:30;width:232px;display:flex;flex-direction:column;padding:24px 16px 18px;background:#202925;color:#e9eeeb}.sidebar-brand{display:flex;align-items:center;gap:11px;padding:0 8px 28px}.brand-symbol{width:36px;height:36px;display:grid;place-items:center;border-radius:6px;color:#fff;background:var(--accent)}.sidebar-brand small,.sidebar-brand strong,.sidebar-status small,.sidebar-status strong{display:block}.sidebar-brand strong{font-size:15px}.sidebar-brand small,.sidebar-status small{margin-top:2px;color:#9ba8a1;font-size:11px}.main-nav{display:grid;grid-gap:5px;gap:5px}.main-nav button,.nav-logout{width:100%;min-height:44px;border:0;border-radius:6px;display:flex;align-items:center;gap:11px;padding:0 12px;color:#b8c2bd;background:transparent;cursor:pointer;text-align:left}.main-nav button.active,.main-nav button:hover{color:#fff;background:#303b36}.sidebar-status{margin-top:auto;padding:14px 10px;border-top:1px solid #35403b;display:flex;align-items:center;gap:10px}.online-dot{width:8px;height:8px;border-radius:50%;background:#5fca92;box-shadow:0 0 0 4px rgba(95,202,146,.12)}.sidebar-status strong{font-size:12px}.nav-logout{margin-top:4px}.main-shell{min-height:100svh;margin-left:232px}.topbar{height:84px;padding:0 34px;display:flex;align-items:center;gap:14px;border-bottom:1px solid var(--line);background:rgba(246,247,244,.95)}.topbar h1{margin:0;font-size:22px;line-height:1.1}.topbar .secondary-button{margin-left:auto;background:transparent}.mobile-menu{display:none}.workspace{width:min(1180px,100%);margin:0 auto;padding:30px 34px 90px}.summary-strip{min-height:92px;display:grid;grid-template-columns:repeat(3,minmax(120px,1fr)) auto;align-items:center;grid-gap:24px;gap:24px;padding:0 24px;border:1px solid var(--line);border-radius:7px;background:var(--surface)}.summary-strip>div{min-width:0;padding-right:20px;border-right:1px solid var(--line)}.summary-strip span{display:block;color:var(--muted);font-size:12px}.summary-strip strong{display:block;margin-top:5px;font-size:25px;line-height:1}.danger-text{color:var(--danger)}.filter-band{min-height:58px;margin:18px 0 28px;display:flex;align-items:center;gap:9px;padding:9px 14px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--muted)}.filter-band select{min-width:130px;height:38px;padding:0 32px 0 10px;border:0;border-right:1px solid var(--line);background:transparent;color:var(--ink);outline:0}.filter-band select:last-child{border-right:0}.task-group{margin:0 0 28px}.task-group>header{height:34px;display:flex;align-items:center;gap:9px}.task-group h2{margin:0;font-size:15px}.task-group header>span:last-child{color:var(--muted);font-size:12px}.group-dot{width:8px;height:8px;border-radius:50%}.group-dot.danger,.status-line.danger{background:var(--danger)}.group-dot.accent,.status-line.accent{background:var(--warning)}.group-dot.neutral,.status-line.neutral{background:#73807a}.group-dot.success,.status-line.success{background:var(--success)}.note-list{border:1px solid var(--line);border-radius:7px;overflow:hidden}.note-list,.note-row{background:var(--surface)}.note-row{width:100%;min-height:80px;display:grid;grid-template-columns:4px minmax(0,1fr) minmax(90px,180px) 20px;align-items:center;grid-gap:16px;gap:16px;padding:13px 18px 13px 0;border:0;border-bottom:1px solid var(--line);text-align:left;cursor:pointer}.note-row:last-child{border-bottom:0}.note-row:hover{background:#fafbf9}.status-line{width:4px;align-self:stretch;border-radius:0 3px 3px 0}.note-row-main{min-width:0;display:block}.note-title{display:block;overflow:hidden;color:var(--ink);font-size:15px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.note-meta{display:flex;gap:16px;margin-top:9px;color:var(--muted);font-size:12px}.note-meta>span{display:flex;align-items:center;gap:5px}.project-tag{min-width:0;overflow:hidden;color:var(--muted);font-size:12px;text-align:right;text-overflow:ellipsis;white-space:nowrap}.row-arrow{color:#9aa49f}.empty-state,.first-run{padding:50px 24px;border:1px dashed #c8cec9;border-radius:7px;text-align:center;background:rgba(255,255,255,.45)}.first-run{margin-bottom:28px}.first-run-icon{width:48px;height:48px;margin:0 auto 14px;display:grid;place-items:center;border-radius:7px;color:var(--accent);background:var(--accent-soft)}.first-run h2{margin:0;font-size:18px}.first-run p{max-width:500px;margin:8px auto 20px;color:var(--muted);font-size:13px}.button-row{display:flex;justify-content:center;gap:10px}.empty-state{color:var(--muted)}.detail-loading,.loading-state,.viewer-loading{min-height:55vh;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--muted)}.error-banner{min-height:44px;margin-bottom:18px;padding:10px 14px;display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid #e5b9b4;border-radius:6px;color:#8b3029;background:var(--danger-soft);font-size:13px}.error-banner button{border:0;color:inherit;background:transparent;cursor:pointer;font-weight:700}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}.section-heading h2{margin:0;font-size:22px}.section-heading p{margin:7px 0 0;color:var(--muted);font-size:13px}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.project-card{min-height:114px;display:grid;grid-template-columns:42px minmax(0,1fr) auto 18px;align-items:center;grid-gap:13px;gap:13px;padding:16px;border:1px solid var(--line);border-radius:7px;background:var(--surface);cursor:pointer;text-align:left}.project-card:hover{border-color:#b4beb7}.account-avatar,.project-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:6px;color:var(--accent);background:var(--accent-soft)}.account-main,.project-card-main{min-width:0}.account-main small,.account-main strong,.project-card-main small,.project-card-main strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-main small,.project-card-main small{margin-top:6px;color:var(--muted);font-size:12px;font-weight:400}.project-stats{display:flex;gap:14px;color:var(--muted);font-size:11px}.project-stats span{text-align:center}.project-stats b{display:block;margin-bottom:3px;color:var(--ink);font-size:17px}.account-list{border:1px solid var(--line);border-radius:7px;overflow:hidden;background:var(--surface)}.account-row{min-height:76px;display:grid;grid-template-columns:42px minmax(0,1fr) 110px 44px;align-items:center;grid-gap:14px;gap:14px;padding:12px 18px;border-bottom:1px solid var(--line)}.account-row:last-child{border-bottom:0}.account-workload{color:var(--muted);font-size:12px}.account-workload b{color:var(--ink);font-size:16px}.toggle{width:42px;height:24px;padding:2px;border:0;border-radius:12px;background:#c8ceca;cursor:pointer}.toggle span{display:block;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .15s ease}.toggle.active{background:var(--success)}.toggle.active span{transform:translateX(18px)}.dialog-backdrop{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:18px;background:rgba(24,32,28,.48)}.dialog{width:min(100%,620px);max-height:calc(100svh - 36px);overflow-y:auto;border-radius:7px;background:var(--surface);box-shadow:var(--shadow)}.dialog-header{display:flex;justify-content:space-between;gap:18px;padding:22px 24px 16px;border-bottom:1px solid var(--line)}.dialog-header h2{margin:0;font-size:19px}.dialog-header p{margin:6px 0 0;color:var(--muted);font-size:12px}.dialog-form{display:grid;grid-gap:16px;gap:16px;padding:22px 24px 24px}.dialog-form textarea,.editor-form textarea{resize:vertical;line-height:1.65}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:3px}.detail-shell{min-height:100svh;padding-bottom:48px}.detail-topbar,.viewer-header{position:-webkit-sticky;position:sticky;top:0;z-index:20;height:72px;display:flex;align-items:center;gap:14px;padding:0 max(20px,calc((100vw - 1220px) / 2));border-bottom:1px solid var(--line);background:rgba(246,247,244,.96);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.detail-breadcrumb{min-width:0;flex:1 1}.detail-breadcrumb span,.detail-breadcrumb strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-breadcrumb span{color:var(--muted);font-size:11px}.detail-breadcrumb strong{margin-top:3px;font-size:14px}.status-badge{min-height:30px;display:inline-flex;align-items:center;gap:6px;padding:0 10px;border-radius:15px;font-size:12px;font-weight:700}.status-badge.draft{color:var(--warning);background:var(--warning-soft)}.status-badge.published{color:var(--success);background:var(--success-soft)}.detail-shell>.error-banner{max-width:1180px;margin:16px auto 0}.toast{position:fixed;z-index:100;left:50%;bottom:28px;transform:translateX(-50%);min-height:42px;display:flex;align-items:center;gap:8px;padding:0 16px;border-radius:6px;color:#fff;background:#26342e;box-shadow:var(--shadow);font-size:13px}.detail-layout{width:min(1180px,calc(100% - 40px));margin:28px auto 0;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);grid-gap:34px;gap:34px;align-items:start}.section-heading.compact{align-items:center;margin-bottom:20px}.section-heading.compact h1{margin:0;font-size:23px}.editor-form{display:grid;grid-gap:17px;gap:17px}.copy-field{position:relative}.copy-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}.copy-actions button{min-height:36px;display:inline-flex;align-items:center;gap:6px;padding:0 11px;border:1px solid var(--line);border-radius:5px;background:var(--surface);cursor:pointer;font-size:12px;font-weight:700}.copy-actions button:hover{border-color:var(--accent);color:var(--accent)}.save-button{justify-self:end}.asset-panel{position:-webkit-sticky;position:sticky;top:96px}.asset-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.asset-heading h2{margin:0;font-size:24px}.asset-heading h2 span{color:var(--muted);font-size:13px;font-weight:500}.upload-zone{width:100%;min-height:108px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:1px dashed #aeb8b1;border-radius:7px;color:var(--accent);background:#f9faf8;cursor:pointer}.upload-zone:hover{border-color:var(--accent);background:var(--accent-soft)}.upload-zone:disabled{opacity:.55;cursor:not-allowed}.upload-zone strong{font-size:13px}.upload-zone span{color:var(--muted);font-size:11px}.asset-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px;margin-top:12px}.asset-tile{position:relative;overflow:hidden;aspect-ratio:4/5;border:1px solid var(--line);border-radius:6px;background:#e6e9e5}.asset-image{position:absolute;inset:0}.asset-image img,.viewer-image img{object-fit:contain;background:#e8ebe7}.asset-number{position:absolute;left:7px;top:7px;min-width:26px;height:26px;display:grid;place-items:center;border-radius:13px;color:#fff;background:rgba(24,32,28,.82);font-size:11px;font-weight:700}.asset-order{position:absolute;right:6px;bottom:6px;display:flex;gap:4px}.asset-order button{width:32px;height:32px;display:grid;place-items:center;border:0;border-radius:5px;color:#fff;background:rgba(24,32,28,.8);cursor:pointer}.asset-order button:disabled{opacity:.35}.asset-empty{min-height:180px;display:grid;place-content:center;justify-items:center;color:var(--muted)}.asset-empty p{margin:10px 0 3px;color:var(--ink);font-weight:700}.asset-empty span{font-size:12px}.asset-context{margin-top:14px;display:grid;grid-template-columns:18px minmax(0,1fr) 18px minmax(0,1fr);align-items:center;grid-gap:6px;gap:6px;padding:12px;border-top:1px solid var(--line);color:var(--muted);font-size:11px}.asset-context span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer-shell{min-height:100svh;padding-bottom:50px;background:#202623}.viewer-header{color:#eef2ef;border-color:#38413d;background:rgba(32,38,35,.96)}.viewer-header .icon-button{color:#fff;border-color:#47514c;background:#2c3430}.viewer-header>div{min-width:0}.viewer-header span,.viewer-header strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer-header strong{font-size:14px}.viewer-header span{margin-top:3px;color:#a8b2ad;font-size:11px}.viewer-list{width:min(720px,100%);margin:0 auto}.viewer-item{margin:0 0 20px;background:#151a18}.viewer-image{position:relative;width:100%;aspect-ratio:3/4}.viewer-item footer{min-height:56px;display:grid;grid-template-columns:50px minmax(0,1fr) 40px;align-items:center;grid-gap:8px;gap:8px;padding:8px 14px;color:#eef2ef}.viewer-item footer span{overflow:hidden;color:#9eaaa4;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.viewer-item footer .icon-button{color:#fff;border-color:#46504b;background:#29312d}.viewer-empty{min-height:60svh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#aab3af}.viewer-loading{color:#c5cdc9;background:#202623}.mobile-nav{display:none}@media (max-width:900px){.sidebar{transform:translateX(-100%);transition:transform .2s ease;box-shadow:var(--shadow)}.sidebar.open{transform:translateX(0)}.main-shell{margin-left:0}.mobile-menu{display:inline-flex}.topbar{padding:0 22px}.workspace{padding:24px 22px 92px}.summary-strip{grid-template-columns:repeat(3,1fr);padding:18px}.summary-strip .primary-button{grid-column:1/-1}.summary-strip>div:nth-child(3){border-right:0}.detail-layout,.project-grid{grid-template-columns:1fr}.asset-panel{position:static}.asset-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:640px){.topbar{height:68px;padding:0 14px}.topbar h1{font-size:18px}.topbar .eyebrow{display:none}.topbar .secondary-button{width:40px;padding:0;font-size:0}.workspace{padding:16px 12px 88px}.summary-strip{min-height:0;gap:12px;padding:14px 12px}.summary-strip>div{padding-right:8px}.summary-strip span{min-height:30px;font-size:11px}.summary-strip strong{font-size:22px}.filter-band{margin:12px 0 22px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:8px}.filter-band>svg{display:none}.filter-band select{width:100%;min-width:0;border:1px solid var(--line);border-radius:5px;background:#fff;font-size:12px}.filter-band select:last-child{border-right:1px solid var(--line)}.note-row{min-height:94px;grid-template-columns:4px minmax(0,1fr) 18px;gap:11px;padding-right:12px}.note-meta{gap:10px;flex-wrap:wrap}.note-meta span:nth-child(3){display:none}.project-tag{grid-column:2;text-align:left;font-size:11px}.row-arrow{grid-column:3;grid-row:1/3}.first-run{padding:34px 15px}.button-row{flex-direction:column}.section-heading{align-items:center}.section-heading h2{font-size:19px}.section-heading p{display:none}.project-card{grid-template-columns:40px minmax(0,1fr) 18px}.project-stats{grid-column:2;justify-content:flex-start}.project-card>svg{grid-column:3;grid-row:1/3}.account-row{grid-template-columns:40px minmax(0,1fr) 44px;padding:12px}.account-workload{grid-column:2}.toggle{grid-column:3;grid-row:1/3}.mobile-nav{position:fixed;inset:auto 0 0;z-index:40;height:calc(68px + env(safe-area-inset-bottom));padding:7px 12px env(safe-area-inset-bottom);display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);background:rgba(255,255,255,.97)}.mobile-nav button{border:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--muted);background:transparent;font-size:10px}.mobile-nav button.active{color:var(--accent);font-weight:700}.dialog-backdrop{align-items:flex-end;padding:0}.dialog{max-height:92svh;border-radius:7px 7px 0 0}.dialog-header{padding:18px 16px 14px}.dialog-form{padding:18px 16px calc(20px + env(safe-area-inset-bottom))}.form-grid{grid-template-columns:1fr}.detail-topbar,.viewer-header{height:64px;padding:0 12px}.detail-layout{width:calc(100% - 24px);margin-top:18px;gap:28px}.section-heading.compact{align-items:flex-start}.section-heading.compact h1{font-size:20px}.section-heading.compact .secondary-button{max-width:144px;white-space:normal;line-height:1.2}.copy-actions{display:grid;grid-template-columns:repeat(3,1fr)}.copy-actions button{padding:0 6px;justify-content:center}.save-button{width:100%}.asset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.asset-panel{padding-bottom:22px}.toast{bottom:calc(18px + env(safe-area-inset-bottom));max-width:calc(100% - 24px);white-space:nowrap}.viewer-item{margin-bottom:12px}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}