:root{font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;font-size:13px;color:#282a33;background:#fff;--ink:#272932;--muted:#90929f;--line:#ececf1;--accent:#6961d8;--wash:#f8f8fb;--purple:#f0edff}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;color:inherit;border:1px solid #e5e5ed;border-radius:6px;background:white;padding:7px 11px;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:background .15s,border-color .15s}button:hover{background:#f6f6fa;border-color:#d5d3e3}button:focus-visible{outline:2px solid #948ee1;outline-offset:2px}button.primary{background:var(--accent);border-color:var(--accent);color:white;box-shadow:0 2px 3px #514cc415}button.primary:hover{background:#5951c2}.icon-button{padding:5px;border:0;background:transparent}.plain{border:0;background:transparent;color:#818391;padding:4px}.plain:hover{background:#f2f1f8}.danger{color:#c76a66}.icon{width:17px;height:17px;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.layout{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:100vh}.sidebar{background:#fbfbfd;border-right:1px solid var(--line);padding:22px 14px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:650;padding:0 9px 25px}.brand-mark{display:grid;place-items:center;width:29px;height:29px;border-radius:8px;color:white;background:#383641;font-size:16px}.workspace{font-size:10px;color:#93929e;font-weight:400;margin-top:4px;letter-spacing:.4px}.side-search{display:flex;align-items:center;gap:7px;border:1px solid #e8e8ef;background:white;border-radius:6px;padding:8px;margin-bottom:24px;color:#9593a2}.side-search input{background:none;border:0;padding:0;outline:none!important;min-width:0;width:100%;font-size:12px}.key{font-family:inherit;border:1px solid #e9e9ef;border-radius:3px;font-size:10px;line-height:16px;padding:0 4px;color:#a09eab;background:#fff}.nav-link{display:flex;align-items:center;gap:10px;border:0;background:none;width:100%;justify-content:flex-start;padding:9px 10px;color:#777984;text-align:left;margin-bottom:3px}.nav-link.active{color:#655bcb;background:#eeecf7}.nav-link .count{margin-left:auto;font-size:11px;color:#9692ad}.side-label{padding:24px 10px 10px;color:#a09eaa;font-size:11px}.customer-link{display:flex;align-items:center;justify-content:flex-start;width:100%;border:0;background:none;gap:9px;padding:10px;font-size:12px}.customer-link.active{background:#eeecf7;color:#625bc3}.mini-logo{width:21px;height:21px;border-radius:5px;border:1px solid #e6e6ee;background:white;display:grid;place-items:center;font-size:10px;font-weight:700;color:#7d7699}.sidebar-bottom{margin-top:auto;padding-top:24px}.demo-tag{color:#9997a6;font-size:11px;padding:13px 10px;line-height:1.8}.user{border-top:1px solid var(--line);padding:14px 10px 0;display:flex;align-items:center;gap:9px}.avatar{width:27px;height:27px;border-radius:50%;background:#eeeafa;color:#8e80b6;font-size:10px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.avatar.blue{background:#eaf0f8;color:#7a91b3}.avatar.orange{background:#faf0e6;color:#bc956a}.content{min-width:0}.topbar{height:57px;border-bottom:1px solid var(--line);padding:0 34px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:#aaa8b4;font-size:12px}.crumb{display:flex;align-items:center;gap:12px}.crumb strong{font-weight:400;color:#575765}.top-actions{display:flex;gap:10px;align-items:center}.sample{font-size:10px;border:1px solid #e9e7f4;background:#faf9fd;color:#9890b1;border-radius:4px;padding:3px 7px;white-space:nowrap}.page{max-width:1290px;margin:auto;padding:34px 42px 60px}.profile{display:flex;gap:17px;align-items:center}.company-logo{width:55px;height:55px;border:1px solid #e6e4f0;border-radius:12px;background:linear-gradient(145deg,#faf9ff,#efedf7);color:#6a618b;display:grid;place-items:center;font-size:27px;font-weight:700;flex-shrink:0}.profile h1{font-size:25px;letter-spacing:-.6px;margin:0 0 11px;font-weight:650}.meta{display:flex;gap:12px;align-items:center;flex-wrap:wrap;color:#95939f;font-size:12px}.meta .sep{color:#e1dfea}.meta .person{display:flex;align-items:center;gap:6px;color:#777583}.pill{border:1px solid #e7e4f8;border-radius:5px;background:#f5f3ff;color:#8177b0;font-size:10px;padding:3px 7px;display:inline-flex;align-items:center;gap:5px}.dot{width:6px;height:6px;background:#9c8bc4;border-radius:50%;display:inline-block}.profile-actions{margin-left:auto;display:flex;gap:7px}.tabs{display:flex;gap:27px;border-bottom:1px solid var(--line);margin-top:29px;margin-bottom:0}.tab{border:0;border-bottom:2px solid transparent;background:none;border-radius:0;padding:13px 0 15px;font-size:12px;color:#92909c}.tab.active{border-color:#7770d5;color:#625bb5}.tab .icon{width:15px;height:15px}.tab .number{font-size:10px;background:#f2f1f6;border-radius:4px;padding:1px 5px;margin-left:1px;color:#9995aa}.section{padding:28px 0;border-bottom:1px solid var(--line)}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px}.section-title{display:flex;align-items:center;gap:9px}.section-title .icon{color:#9b97ae;width:16px;height:16px}.section h2{font-size:14px;font-weight:600;margin:0}.section-head .plain{font-size:11px}.fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:23px 35px}.field{min-width:0}.field-label{font-size:11px;color:#a09daa;margin-bottom:9px;display:flex;justify-content:space-between;align-items:center}.field-edit{border:0;background:transparent;justify-content:flex-start;text-align:left;line-height:1.7;padding:0;width:100%;overflow-wrap:anywhere;white-space:pre-wrap;min-height:23px;border-radius:3px;font-size:12px}.field-edit:hover{background:#f6f5fa}.field-tools{display:flex;gap:2px}.field-tools button{padding:0 2px;font-size:10px}.field-tools{opacity:0}.field:hover .field-tools,.field:focus-within .field-tools{opacity:1}.bank-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:25px}.bank{border:1px solid #ebe9f1;border-radius:8px;padding:15px 17px;background:#fcfbfe;min-width:0}.bank-top{display:flex;justify-content:space-between;gap:12px;align-items:center}.bank-label{font-size:12px;font-weight:550;display:flex;align-items:center;gap:8px}.bank .icon{color:#9b91ad}.bank small{font-size:10px;color:#a29bac}.bank-number{font-family:"Segoe UI",monospace;font-size:16px;letter-spacing:1px;color:#666071;margin:13px 0 8px}.bank-foot{display:flex;gap:10px;color:#a59eaf;font-size:10px}.attachment-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.attachment{min-width:0}.attachment-preview{display:flex;align-items:center;justify-content:center;width:100%;height:128px;border-radius:7px;border:1px solid #ebe9f0;background:#f7f6fa;overflow:hidden;padding:14px}.attachment-preview svg{height:100%;width:100%}.attachment-preview img{width:100%;height:100%;object-fit:contain}.attachment-name{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:10px;display:flex;justify-content:space-between;gap:5px}.attachment-name span{overflow:hidden;text-overflow:ellipsis}.attachment-name .plain{font-size:10px;padding:0}.attachment-kind{font-size:10px;color:#b1abba;margin-top:5px}.upload-tile{width:100%;height:128px;border:1px dashed #d9d5e7;border-radius:7px;background:#fdfcfe;flex-direction:column;gap:8px;color:#aaa2bc;font-size:11px}.upload-tile .icon{width:23px;height:23px}.footnote{font-size:10px;color:#aba7b4;margin-top:25px;line-height:1.8}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:23px 0 18px}.toolbar-title{font-size:13px;font-weight:600}.toolbar-title small{font-size:10px;font-weight:400;color:#a39eae;margin-left:9px}.toolbar-actions{display:flex;gap:8px;align-items:center}.view-switch{display:flex;background:#f6f5f9;padding:3px;border-radius:6px;border:1px solid #eeecf3}.view-switch button{border:0;background:none;padding:4px 7px;color:#aba5b5}.view-switch button.active{background:white;color:#6f668c;box-shadow:0 1px 3px #2d254810}.filters{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:20px}.filter{font-size:11px;border:1px solid #eeedf2;color:#9b94a5;background:white;padding:5px 10px}.filter.active{background:#f1eefb;border-color:#e3def4;color:#8372b0}.group-header{display:flex;align-items:center;gap:9px;padding:13px 13px;background:#faf9fc;border-top:1px solid #eeecf3;border-bottom:1px solid #eeecf3;font-size:11px;font-weight:500;color:#81748f}.group-header .qty{font-size:10px;color:#b3a9bb}.group-header button{margin-left:auto;color:#b0a2bd}.status-symbol{width:14px;height:14px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.status-symbol.todo{border:1.5px dashed #b6afc0;border-radius:50%}.status-symbol.doing{border:1.5px solid #bfa568;border-radius:50%;background:linear-gradient(90deg,#c3a66c 50%,transparent 50%)}.status-symbol.waiting{border:1.5px solid #a28bb9;border-radius:50%;font-size:8px;color:#a28bb9;letter-spacing:-1px}.status-symbol.done{border-radius:50%;background:#8c9e8f;color:white;font-size:10px}.status-symbol.cancelled{border:1.5px solid #b7b0bc;border-radius:50%;color:#b7b0bc;font-size:9px}.task-row{display:grid;grid-template-columns:24px 58px minmax(0,1fr) 100px 85px 28px;gap:8px;align-items:center;padding:15px 13px;border-bottom:1px solid #f0edf4;cursor:pointer;font-size:12px}.task-row:hover{background:#faf9fe}.task-row:focus-visible{outline:2px solid #9990cd;outline-offset:-2px}.task-code{font-family:monospace;font-size:10px;color:#b4aebd}.task-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:450}.task-tag{font-size:10px;color:#9e94aa;border:1px solid #eae5ee;border-radius:4px;padding:2px 6px;justify-self:start}.task-date{font-size:10px;color:#a49bad;text-align:right}.task-row .avatar{width:23px;height:23px;font-size:9px}.task-row.completed .task-title{color:#a6a0ae}.check-action{border:0;background:transparent;padding:3px}.board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.board-column{min-width:0;background:#faf9fc;border:1px solid #f0edf5;border-radius:8px;padding:11px}.board-title{display:flex;align-items:center;gap:7px;color:#8f829f;font-size:11px;margin-bottom:13px}.task-card{width:100%;text-align:left;display:block;padding:14px 12px;border-radius:7px;border:1px solid #eae5ef;margin-bottom:9px;background:white;box-shadow:0 2px 4px #45395803}.task-card strong{display:block;font-weight:500;font-size:12px;margin:12px 0 15px;line-height:1.6}.task-card-foot{display:flex;justify-content:space-between;align-items:center}.progress-summary{display:flex;gap:24px;align-items:center;padding:15px 17px;background:#fcfbfe;border:1px solid #eeebf3;border-radius:7px;margin:22px 0 2px;color:#9b90a7;font-size:11px}.progress-summary strong{color:#70647f;font-weight:500}.progress-summary .push{margin-left:auto}.ledger-summary{display:grid;grid-template-columns:repeat(3,1fr);padding:26px 0;border-bottom:1px solid var(--line)}.ledger-stat{padding:0 30px;border-right:1px solid var(--line)}.ledger-stat:first-child{padding-left:0}.ledger-stat:last-child{border:0}.ledger-stat label{font-size:11px;color:#a9a3b2}.ledger-stat strong{display:block;font-size:26px;font-weight:500;letter-spacing:-.6px;margin:13px 0 5px;font-variant-numeric:tabular-nums}.ledger-stat small{color:#b2aab9;font-size:10px}.green{color:#789482}.red{color:#bb8a83}.ledger-table{width:100%;border-collapse:collapse;text-align:left}.ledger-table th{font-size:10px;color:#aba2b7;background:#fbf9fd;font-weight:400;padding:12px}.ledger-table td{border-bottom:1px solid #f0edf4;padding:17px 12px;font-size:12px}.ledger-table small{display:block;color:#b0a6bd;margin-top:6px;font-size:10px}.ledger-table .amount{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.ledger-table .voided{opacity:.45}.ledger-table .voided .amount{text-decoration:line-through}.ledger-table .plain{font-size:10px}.ledger-mobile{display:none}.empty{color:#b0a7bd;padding:45px 10px;text-align:center;font-size:12px}.mobile-menu{display:none}dialog{border:1px solid #e9e5ef;border-radius:10px;padding:24px;width:min(490px,calc(100% - 24px));max-height:90vh;box-shadow:0 20px 100px #31244222;color:var(--ink)}dialog::backdrop{background:#28223b28;backdrop-filter:blur(2px)}dialog h2{font-size:17px;font-weight:600;margin:0 0 24px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}label{font-size:11px;color:#a294af}input,select,textarea{border:1px solid #e5dfed;border-radius:6px;padding:9px 10px;width:100%;min-width:0;background:white;color:#72647e;font:inherit;outline:none}input:focus,select:focus,textarea:focus{border-color:#a99bcc;box-shadow:0 0 0 2px #b5a6d520}label input,label select,label textarea{margin-top:8px}textarea{min-height:90px;resize:vertical;line-height:1.8}.wide{grid-column:1/-1}.form-footer{display:flex;gap:8px;justify-content:flex-end;margin-top:23px}.form-error{color:#c78685;font-size:11px;margin-top:14px}.modal-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.modal-top h2{margin:0}#drawer{position:fixed;inset:0 0 0 auto;margin:0;width:470px;max-width:100%;height:100dvh;max-height:none;border-radius:0;border:0;border-left:1px solid #e7e0ef;padding:0;box-shadow:-10px 0 60px #332a4620}#drawer::backdrop{background:#1a123018;backdrop-filter:none}.drawer-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 24px;border-bottom:1px solid #ede7f2;color:#a698b4;font-size:11px}.drawer-body{padding:27px 28px}.drawer-title{font-size:21px!important;line-height:1.5;margin-bottom:23px!important}.drawer-title button{font:inherit;text-align:left;padding:0;border:0;background:none;width:100%;justify-content:flex-start}.drawer-props{display:grid;grid-template-columns:85px minmax(0,1fr);gap:13px;align-items:center;font-size:11px;margin-bottom:27px}.drawer-props>span{color:#ad9bbc}.drawer-props input,.drawer-props select{font-size:11px;border:0;background:#fbf9fd;padding:7px 10px}.drawer-section{border-top:1px solid #eee6f5;padding-top:23px;margin-top:23px}.drawer-section h3{font-size:12px;font-weight:550;color:#9582a5;margin:0 0 16px}.drawer-note{font-size:12px;line-height:1.9;color:#a28eb2;white-space:pre-wrap}.budget-row{display:flex;gap:35px}.budget-row small{font-size:10px;color:#b7a0c6}.budget-row strong{display:block;font-size:15px;font-weight:500;color:#9a82ad;margin-top:7px}.update{position:relative;padding-left:20px;padding-bottom:22px;border-left:1px solid #e7d9ef;margin-left:5px}.update:last-child{padding-bottom:5px}.update:before{content:'';width:7px;height:7px;background:#c1aacf;border-radius:50%;position:absolute;left:-4px;top:4px}.update-meta{font-size:10px;color:#bca4cb;margin-bottom:8px}.update p{font-size:12px;line-height:1.7;color:#a388b6;margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.update-form{margin-top:15px}.update-form textarea{font-size:12px;min-height:75px}.update-form button{margin-top:10px;float:right}.drawer-save-note{font-size:10px;color:#b8a7c2;clear:both;padding-top:18px}.viewer{width:min(780px,calc(100% - 24px))}.viewer img{display:block;max-width:100%;max-height:65vh;margin:auto}.viewer > svg{display:block;width:100%;height:55vh;margin:auto}.viewer p{font-size:11px;color:#b1a0bf;text-align:center}#notice{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);padding:10px 16px;border-radius:8px;box-shadow:0 5px 25px #34234818;background:#3b3248;color:#fff;font-size:12px;z-index:10;display:none;max-width:90vw}.search-results button{width:100%;justify-content:flex-start;display:flex;gap:10px;border:0;border-bottom:1px solid #f0ebf5;padding:14px 8px;text-align:left}.search-results span{font-size:10px;color:#b09cbe}.reset-note{font-size:11px;line-height:1.9;color:#a18bad}.table-scroll{overflow:auto}
.drawer-note,.update p{color:#67616f}.drawer-section h3{color:#756d80}.drawer-props>span{color:#8c8396}.drawer-props input,.drawer-props select{color:#5d5669}.update-meta{color:#93889f}.budget-row strong{color:#665c74}.budget-row small{color:#978ba2}.drawer-save-note{color:#9a8fa4}.field-label{color:#898391}.task-date{color:#8c8197}.attachment-kind{color:#958b9f}.form-grid label{color:#84758f}
@media(min-width:1500px){.page{padding:44px 62px 70px}}
@media(max-width:1150px){.layout{grid-template-columns:195px minmax(0,1fr)}.page{padding:28px 28px 50px}.topbar{padding:0 28px}.fields{gap:24px}.attachment-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.profile h1{font-size:22px}.board{grid-template-columns:repeat(2,minmax(0,1fr))}.task-row{grid-template-columns:22px 50px minmax(0,1fr) 65px 67px 24px;gap:6px}.task-tag{font-size:9px}}
@media(max-width:760px){.layout{display:block}.sidebar{display:none}.sidebar.open{display:flex;position:fixed;inset:0 auto 0 0;width:240px;z-index:5;box-shadow:10px 0 50px #36284f30}.mobile-menu{display:inline-flex}.topbar{padding:0 16px;height:52px}.top-actions .key{display:none}.crumb{gap:7px;font-size:10px}.page{padding:25px 18px 40px}.company-logo{width:43px;height:43px;font-size:22px}.profile{align-items:flex-start;gap:12px;flex-wrap:wrap}.profile h1{font-size:20px;line-height:1.6;margin:0 0 9px}.profile-main{max-width:calc(100% - 58px)}.meta{gap:8px;font-size:10px}.meta .sep{display:none}.profile-actions{width:100%;margin-left:55px;margin-top:4px}.profile-actions button{font-size:10px}.tabs{gap:24px;margin-top:18px;position:sticky;top:0;background:white;z-index:1}.tab{font-size:11px}.fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:23px 18px}.field-label{font-size:10px}.field-edit{font-size:11px}.field-tools{opacity:1}.bank-list{grid-template-columns:1fr}.attachment-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.attachment-preview,.upload-tile{height:105px}.section{padding:25px 0}.section-head{margin-bottom:20px}.section-head button{font-size:10px;padding:5px 7px}.section h2{font-size:13px}.section-head .icon{width:14px;height:14px}.task-row{grid-template-columns:20px minmax(0,1fr) 64px 24px;padding:15px 8px;gap:6px}.task-code,.task-tag{display:none}.task-title{font-size:11px}.task-date{font-size:9px}.toolbar{gap:8px}.toolbar-actions button{font-size:10px;padding:6px 8px}.view-switch button{padding:4px}.toolbar-title small{display:none}.progress-summary{gap:10px;padding:11px;font-size:9px;flex-wrap:wrap}.progress-summary .push{margin-left:0}.board{gap:9px}.board-column{padding:9px}.task-card{padding:11px 8px}.task-card strong{font-size:11px}.board-title{font-size:10px}.ledger-stat{padding:0 12px}.ledger-stat strong{font-size:19px;letter-spacing:-.5px}.ledger-stat label{font-size:10px}.ledger-stat small{font-size:9px}.table-scroll{display:none}.ledger-mobile{display:block}.ledger-entry{padding:17px 0;border-bottom:1px solid var(--line)}.ledger-entry>div{display:flex;justify-content:space-between;gap:10px}.ledger-entry strong{font-size:12px;font-weight:500}.ledger-entry small{font-size:10px;color:#ae9abd;display:block;margin-top:8px}.ledger-entry .plain{font-size:10px}.ledger-entry.voided{opacity:.5}.ledger-entry .amount{font-variant-numeric:tabular-nums}.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}#drawer{width:100%}.drawer-body{padding:24px}.sample{font-size:9px}.top-actions{gap:4px}.footnote{font-size:9px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* Palette preferences are separate from all demo/business records. */
:root{--theme-tint:#f1eefb;--theme-soft:#faf9fd;--theme-border:#e3def4;--theme-text:#6d62a6;--theme-deep:#5951c2;--theme-ring:#b5a6d530;--theme-logo:#ede9f8}
:root[data-theme="blue"]{--accent:#347bb1;--theme-tint:#eaf3fa;--theme-soft:#f8fbfd;--theme-border:#d5e5f1;--theme-text:#417aa3;--theme-deep:#28638f;--theme-ring:#6ea7cb30;--theme-logo:#e3eff8}
:root[data-theme="green"]{--accent:#2d8773;--theme-tint:#e9f4ee;--theme-soft:#f8fcfa;--theme-border:#d4e7df;--theme-text:#397d69;--theme-deep:#236b5b;--theme-ring:#75af9c30;--theme-logo:#e3f1e9}
.theme-picker{display:flex;align-items:center;gap:6px;padding:3px 7px;border:1px solid var(--theme-border);border-radius:6px;background:var(--theme-soft);flex-shrink:0}
.theme-picker select{font-size:11px;width:76px;border:0;padding:3px 0;background:transparent;color:var(--theme-text);box-shadow:none}
.theme-swatch{width:8px;height:8px;background:var(--accent);border-radius:50%;flex-shrink:0}
button.primary:hover{background:var(--theme-deep)}
.nav-link.active,.customer-link.active,.filter.active{color:var(--theme-text);background:var(--theme-tint)}
.filter.active{border-color:var(--theme-border)}
.tab.active{color:var(--theme-text);border-color:var(--accent)}
.company-logo{background:linear-gradient(145deg,var(--theme-soft),var(--theme-logo));color:var(--theme-text);border-color:var(--theme-border)}
.mini-logo,.pill,.sample{color:var(--theme-text);border-color:var(--theme-border);background:var(--theme-soft)}
.pill .dot{background:var(--accent)}
.avatar:not(.blue):not(.orange){background:var(--theme-logo);color:var(--theme-text)}
.bank,.progress-summary,.board-column,.group-header,.attachment-preview,.ledger-table th,.drawer-props input,.drawer-props select{background:var(--theme-soft)}
.bank,.progress-summary,.board-column,.attachment-preview{border-color:var(--theme-border)}
.task-row:hover,.field-edit:hover{background:var(--theme-soft)}
.upload-tile{background:var(--theme-soft);border-color:var(--theme-border);color:var(--theme-text)}
input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--theme-ring)}
button:focus-visible{outline-color:var(--accent)}
.update:before{background:var(--accent)}
.update,.drawer-section{border-color:var(--theme-border)}
@media(max-width:760px){.topbar .crumb{min-width:0;flex:1}.topbar .crumb strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:105px}.topbar .top-actions{flex-shrink:0}.theme-picker{padding:2px 5px;gap:4px}.theme-picker select{font-size:10px;width:64px}.top-actions .sample{display:none}}

/* Compact, directly editable task metadata, shared by the live app and demo. */
#drawer .drawer-body{padding:23px 24px}
#drawer .drawer-title{margin-bottom:14px!important;overflow-wrap:anywhere}
#drawer .drawer-props{display:flex;flex-direction:column;align-items:stretch;gap:7px;margin-bottom:0}
.drawer-meta-row,.drawer-date-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;min-width:0}
#drawer .drawer-props label{display:inline-flex;align-items:center;gap:6px;min-width:0;max-width:100%;color:#8c8396;font-size:11px}
#drawer .drawer-props input,#drawer .drawer-props select{width:auto;margin:0;min-height:30px;padding:4px 5px;border:1px solid transparent;background:transparent;font-size:11px;border-radius:5px;line-height:1.5}
#drawer .drawer-props input:hover,#drawer .drawer-props select:hover{background:var(--theme-soft);border-color:var(--theme-border)}
#drawer .drawer-props input:focus,#drawer .drawer-props select:focus{border-color:var(--accent);background:var(--theme-soft)}
#drawer .drawer-props input::placeholder{color:#9b94a5}
#drawer .drawer-status{gap:5px;padding:0 5px;border:1px solid var(--theme-border);border-radius:5px;background:var(--theme-soft)}
#drawer .drawer-status select{width:76px;min-height:28px;padding:3px 0;color:var(--theme-text)}
.drawer-person .avatar{width:22px;height:22px;font-size:10px}
.drawer-sep{color:#d8d3df;font-size:12px;flex-shrink:0}
.drawer-date-row{gap:6px 16px}
#drawer .drawer-date-row input{width:126px;color:#7a7187;font-variant-numeric:tabular-nums}
.drawer-summary{margin-top:12px;padding-top:12px;border-top:1px solid var(--theme-border)}
.drawer-description{display:flex;align-items:flex-start;gap:11px;min-width:0}
.drawer-summary-label{flex-shrink:0;line-height:1.8;font-size:11px;color:#978ba2;padding-top:3px}
#drawer .drawer-note-edit{display:block;flex:1;min-width:0;min-height:26px;padding:2px 4px;border:1px solid transparent;background:transparent;text-align:left;line-height:1.8;overflow-wrap:anywhere}
#drawer .drawer-note-edit:hover{background:var(--theme-soft);border-color:var(--theme-border)}
#drawer .budget-row{flex-wrap:wrap;align-items:center;gap:6px 18px;margin-top:10px}
#drawer .budget-row>div{display:inline-flex;align-items:baseline;gap:7px;min-width:0;flex-wrap:wrap}
#drawer .budget-row strong{display:inline;margin:0;font-size:12px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
#drawer .budget-row small{font-size:10px}
#drawer .budget-row>.plain{margin-left:auto;font-size:10px;min-height:28px}
#drawer .drawer-summary+.drawer-section{margin-top:17px;padding-top:17px}
@media(max-width:760px){#drawer .drawer-body{padding:21px 20px}.drawer-meta-row{gap:6px}#drawer .drawer-props input{min-height:34px}#drawer .drawer-status select{min-height:32px}.drawer-date-row{gap:4px 12px}#drawer .drawer-date-row input{width:122px}#drawer .budget-row{column-gap:14px}}

/* Recent progress sits beside the workspace; small screens use a dedicated sheet. */
.workspace-columns{display:grid;grid-template-columns:minmax(0,1fr) 268px;max-width:1640px;margin:auto;align-items:start}
.workspace-columns>.page{width:100%;min-width:0;max-width:none;margin:0;padding:34px 32px 60px}
.workspace-columns .profile-main{min-width:0;flex:1}
.workspace-columns .profile h1{overflow-wrap:anywhere}
.progress-sidebar{position:sticky;top:20px;display:flex;flex-direction:column;height:calc(100dvh - 92px);min-height:260px;min-width:0;border-left:1px solid var(--line);padding:22px 18px 12px;margin-top:14px}
.progress-feed-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:15px}
.progress-feed-head h2{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:600;margin:0;color:var(--ink)}
.progress-feed-head h2 .icon{width:15px;height:15px;color:var(--theme-text)}
.progress-feed-head>div{display:flex;gap:3px}
.progress-feed-head button{color:#96909e}
.progress-feed-tools{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;color:#9b94a5;font-size:11px}
.progress-feed-tools select{width:auto;max-width:130px;padding:5px 7px;font-size:11px;color:var(--theme-text);border-color:var(--theme-border);background:var(--theme-soft)}
.progress-feed-tools small{font-size:10px;white-space:nowrap}
.progress-feed-list{list-style:none;padding:0;margin:0;min-height:0;overflow-y:auto;overflow-x:hidden;flex:1;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--theme-border) transparent}
.progress-feed-item{display:flex;flex-direction:column;align-items:stretch;text-align:left;gap:7px;width:100%;min-width:0;padding:13px 10px;border:0;border-bottom:1px solid var(--line);border-radius:6px;background:transparent}
.progress-feed-item:hover{background:var(--theme-soft);border-color:var(--theme-border)}
.progress-feed-company{font-size:10px;color:var(--theme-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.progress-feed-item strong{font-size:12px;font-weight:550;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.progress-feed-text{font-size:11px;line-height:1.75;color:#817888;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;white-space:pre-wrap}
.progress-feed-meta{display:flex;justify-content:space-between;gap:8px;color:#a19aa8;font-size:10px;min-width:0;margin-top:2px}
.progress-feed-meta>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.progress-feed-meta time{flex-shrink:0;font-variant-numeric:tabular-nums}
.progress-feed-empty{font-size:12px;color:#8c8396;padding:36px 10px;text-align:center;line-height:1.8}
.progress-feed-empty strong{font-weight:500}
.progress-feed-empty small{display:block;font-size:10px;color:#aaa1b2;margin-top:10px}
.progress-feed-foot{font-size:10px;color:#aaa1b2;margin:12px 0 0;text-align:center;flex-shrink:0}
.progress-quick{display:none;white-space:nowrap;font-size:11px;padding:5px 8px;border-color:var(--theme-border);background:var(--theme-soft);color:var(--theme-text)}
.progress-quick .icon{width:14px;height:14px}
.directory-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
dialog.progress-viewer{padding:0;width:min(480px,calc(100% - 24px));height:min(680px,88dvh);max-height:88dvh;overflow:hidden}
.progress-modal-content{display:flex;flex-direction:column;height:100%;padding:22px;min-width:0}
.progress-modal-content .progress-feed-head h2{font-size:16px}
.progress-modal-content .progress-feed-item{padding:15px 10px}
.update-highlight{background:var(--theme-soft);border-left:2px solid var(--accent);border-radius:0 6px 6px 0;padding-top:10px;padding-right:12px;padding-bottom:14px!important;margin-bottom:14px;outline:0}
.update-highlight:before{top:14px;background:var(--accent)}
@media(max-width:1250px){.workspace-columns{grid-template-columns:minmax(0,1fr) 238px}.workspace-columns>.page{padding:30px 26px 50px}.progress-sidebar{padding-left:14px;padding-right:14px}}
@media(max-width:1050px){.workspace-columns{display:block}.progress-sidebar{display:none}.progress-quick{display:inline-flex}}
@media(max-width:760px){.workspace-columns>.page{padding:25px 18px 40px}.progress-quick{font-size:10px;padding:5px 6px}.progress-modal-content{padding:18px}.directory-actions{margin-top:15px}.topbar .crumb strong{max-width:85px}}
@media(max-width:380px){.topbar .progress-quick{padding:5px}.topbar .progress-quick .icon{display:none}.topbar .crumb strong{max-width:48px}}

.progress-image-tools{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:10px 0 12px;font-size:10px;color:#978ba2}
.progress-image-tools>div{display:flex;align-items:center;gap:5px}
.update-form .progress-image-tools button{float:none;margin:0;font-size:10px;padding:5px 7px}
.progress-image-tools .icon{width:14px;height:14px}
.update .task-image-grid{margin-top:12px}
.task-image-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.task-image-card{min-width:0}
.task-image-preview{display:flex;align-items:center;justify-content:center;width:100%;height:78px;padding:5px;overflow:hidden;border:1px solid var(--theme-border);border-radius:7px;background:var(--theme-soft)}
.update-form .task-image-card button{float:none;margin:0}
.task-image-preview img{width:100%;height:100%;object-fit:contain}
.task-image-card>div{display:flex;align-items:center;justify-content:space-between;gap:4px;margin-top:5px;font-size:10px;color:#978ba2}
.task-image-card .plain{font-size:13px;padding:2px 5px}
.progress-submit-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px}
.progress-submit-row small{font-size:10px;color:#a69bab}
.update-form .progress-submit-row button{float:none;margin:0;flex-shrink:0}
@media(max-width:380px){.task-image-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.update-form .progress-image-tools button{padding:5px;font-size:9px}.progress-image-tools .icon{width:12px;height:12px}.progress-submit-row small{font-size:9px}}
