:root{--bg:#f6f8f6;--white:#fff;--ink:#253b31;--muted:#7a8780;--green:#326b50;--green-dark:#214f3a;--mint:#eaf3eb;--line:#e6ebe6;--sage:#b8cbb7;--shadow:0 8px 32px #223c2d0a;--sidebar:224px;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;font-size:14px;color:var(--ink);background:var(--bg)}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button{color:inherit}button:disabled{cursor:not-allowed;opacity:.55}a{color:var(--green);text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid #96bd99;outline-offset:3px}input:focus,select:focus,textarea:focus{outline:none;border-color:#84a88b;box-shadow:0 0 0 3px #eaf3eb}svg{flex-shrink:0;vertical-align:middle}h1,h2,h3,p{margin:0}button{border:0;background:none}h1{font-size:27px;letter-spacing:-.6px;line-height:1.4;font-weight:650}h2{font-size:16px;line-height:1.5;font-weight:600}h3{font-size:14px;line-height:1.5}small{font-size:12px}ul{list-style:none;margin:0;padding:0}.muted{color:var(--muted)}.tiny{font-size:12px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.truncate{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.stack{display:grid;gap:5px}.row{display:flex;align-items:center;gap:10px}.between{display:flex;align-items:center;justify-content:space-between;gap:16px}.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}.hidden{display:none!important}
.boot{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px}.boot-logo{background:var(--green);color:white;width:58px;height:58px;border-radius:18px;display:grid;place-items:center;font-size:26px}.boot p{color:var(--muted)}
.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:#fcfdfb;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:30;padding:30px 16px 18px}.brand{display:flex;align-items:center;gap:11px;padding:0 12px 31px}.brandmark{width:36px;height:36px;border-radius:11px;background:var(--green);display:grid;place-items:center;color:#eef5e3}.brand-name{font-size:20px;font-weight:700;letter-spacing:1px}.brand-sub{font-size:10px;letter-spacing:1.7px;color:#8a968a;margin-top:3px}.workspace-switch{padding:12px;background:#f0f4ee;border:1px solid #e5ebdf;border-radius:10px;width:100%;text-align:left;display:flex;gap:9px;align-items:center;margin-bottom:29px}.workspace-switch .avatar{background:white;color:#58734f}.workspace-switch strong{font-size:12px;font-weight:600}.workspace-switch small{display:block;font-size:11px;margin-top:5px;color:#86907f}.nav-label{font-size:10px;color:#a0a99f;letter-spacing:1.5px;padding:0 14px;margin:7px 0 12px}.nav-item{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:12px 15px;margin:3px 0;border-radius:8px;color:#7d897f;font-size:13px;font-weight:450;position:relative}.nav-item:hover{background:#f2f5f0;color:var(--green)}.nav-item.active{background:#e8f0e5;color:#326644;font-weight:600}.nav-item.active:before{content:'';position:absolute;width:3px;height:18px;background:#527b50;left:0;border-radius:0 4px 4px 0}.nav-count{margin-left:auto;font-size:10px;background:#e0e9dc;padding:2px 6px;border-radius:4px}.sidebar-bottom{margin-top:auto}.local-box{padding:14px;border:1px solid var(--line);border-radius:10px;color:#7b897c;line-height:1.8;font-size:11px;margin-bottom:16px}.online-dot{display:inline-block;width:6px;height:6px;background:#77a66f;border-radius:50%;margin-right:5px}.profile{border-top:1px solid var(--line);padding:18px 8px 0;display:flex;align-items:center;gap:10px}.avatar{width:32px;height:32px;border-radius:9px;background:#e6ede4;color:#697f62;display:grid;place-items:center;font-size:13px;flex-shrink:0}.profile strong{font-size:12px}.profile small{font-size:10px;color:var(--muted)}
.main{margin-left:var(--sidebar);min-height:100vh}.topbar{height:70px;border-bottom:1px solid var(--line);padding:0 32px;display:flex;align-items:center;justify-content:space-between;background:#ffffffa8;gap:20px}.breadcrumb{display:flex;align-items:center;gap:9px;font-size:12px;color:#8a958d}.breadcrumb strong{color:#56665b;font-weight:500}.global-search{display:flex;align-items:center;gap:9px;color:#9aa49c;width:262px;height:34px;border:1px solid var(--line);background:#fafcf9;border-radius:7px;padding:0 10px}.global-search input{width:100%;border:none;background:transparent;outline:none;box-shadow:none;font-size:11px}.global-search kbd{font-size:10px;background:white;padding:2px 4px;border:1px solid #e5e9e3;border-radius:4px;white-space:nowrap}.icon-button{width:32px;height:32px;display:inline-grid;place-items:center;border-radius:7px;color:#7b877f;flex-shrink:0}.icon-button:hover{background:#eaf1e7;color:var(--green)}.top-separator{height:20px;border-left:1px solid var(--line);margin:0 8px}.mobile-menu{display:none}
.content{max-width:1580px;margin:auto;padding:30px 34px 40px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:23px}.page-heading p{color:#879087;font-size:12px;margin-top:8px;line-height:1.8}.eyebrow{font-size:10px;color:#869181;letter-spacing:1px;margin-bottom:8px}.heading-actions{display:flex;gap:10px;align-items:center}.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:37px;padding:9px 14px;border-radius:7px;border:1px solid var(--line);background:#fff;font-size:12px;white-space:nowrap;transition:background .15s,transform .15s}.button:hover{background:#f4f7f1;border-color:#d0ddca}.button.primary{background:var(--green);border-color:var(--green);color:white;box-shadow:0 2px 3px #255a3b14}.button.primary:hover{background:var(--green-dark)}.button.light{background:#edf4e8;border-color:#e3ecdd;color:#547348}.button.danger{color:#ab5949;background:#fff8f5;border-color:#f0dcd4}.button.small{min-height:30px;padding:6px 10px;font-size:11px}.text-button{color:#5b7f51;font-size:12px;padding:4px 0;display:inline-flex;gap:5px;align-items:center}.text-button:hover{color:#244f31}.notice{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border:1px solid #dfe9d8;background:#f0f6e9;border-radius:8px;margin-bottom:23px;font-size:11px;color:#708465;gap:12px}.notice .row{gap:8px}.notice strong{color:#527345;font-weight:500}.notice a,.notice button{font-size:11px;color:#607c4e;white-space:nowrap}.notice.amber{background:#fbf6eb;border-color:#efe4c9;color:#9c8553}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px}.stat-card{border:1px solid var(--line);border-radius:12px;background:#fff;padding:21px 23px 18px;min-height:145px;position:relative;overflow:hidden}.stat-card.featured{background:#e9f1e4;border-color:#dfebd8}.stat-card:hover{border-color:#ccd9c4}.stat-label{display:flex;align-items:center;justify-content:space-between;color:#7c897b;font-size:12px}.stat-icon{width:29px;height:29px;border-radius:8px;display:grid;place-items:center;background:#f1f5ec;color:#779269}.stat-value{font-size:38px;line-height:1.1;font-weight:600;letter-spacing:-1.3px;margin:12px 0 11px;color:#354e3b;font-variant-numeric:tabular-nums}.stat-card.featured .stat-value{color:#2f5b38}.stat-note{font-size:10px;color:#96a08f}.stat-note strong{font-weight:500;color:#78906e;margin-right:6px}.stat-card .leaf-watermark{position:absolute;right:16px;bottom:10px;color:#9eba8726;transform:rotate(-12deg)}.resource-strip{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:10px;background:#fff;margin-bottom:25px;padding:15px 8px}.resource-item{display:flex;align-items:center;gap:11px;padding:0 20px;border-right:1px solid #eef1eb;text-align:left}.resource-item:last-child{border:0}.resource-item .icon-tile{color:#8b9b80;background:#f2f5ee;border-radius:8px;width:32px;height:32px;display:grid;place-items:center}.resource-item small{color:#8b9486;font-size:11px}.resource-item strong{font-size:20px;font-weight:600;margin-left:auto;color:#496243}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(260px,1fr);gap:20px;align-items:start}.panel{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);overflow:hidden}.panel-heading{display:flex;align-items:center;justify-content:space-between;padding:19px 21px;border-bottom:1px solid #f0f2ed;gap:10px}.panel-heading h2{font-size:14px}.panel-heading .sub{font-size:11px;color:#a0a99c;margin-top:5px}.panel-body{padding:20px}.panel-footer{border-top:1px solid #f0f2ed;padding:12px 20px;font-size:11px;color:#98a092;display:flex;justify-content:space-between;align-items:center}.platform{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;font-size:13px;flex-shrink:0;font-weight:650;letter-spacing:-1px;background:#eef3ea;color:#69865b}.platform.qq{background:#fbf2dd;color:#b8944b}.platform.wx{background:#e8f4e9;color:#559564}.platform.wb{background:#fbeddf;color:#c68c69}.platform.dy{background:#ececf3;color:#595e75}.platform.xhs{background:#fbedec;color:#bf6e6d}.platform.tiny{width:25px;height:25px;font-size:10px;border-radius:7px}.platform.profile-lg{width:48px;height:48px;font-size:20px;border-radius:13px}.badge{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:5px;background:#f1f3ee;color:#8a9681;font-size:10px;white-space:nowrap;line-height:1.3}.badge.green{background:#edf5e9;color:#689252}.badge.amber{background:#fbf3df;color:#b49857}.badge.red{background:#fbede8;color:#b77663}.badge.blue{background:#edf1f5;color:#738da4}.badge.gray{background:#f2f3f1;color:#929a90}.badge.dot:before{content:'';width:4px;height:4px;border-radius:50%;background:currentColor}.tag{display:inline-block;background:#f4f6f1;color:#819174;font-size:10px;padding:4px 7px;border-radius:4px}.chips{display:flex;flex-wrap:wrap;gap:5px}.device-chip{font-size:10px;display:inline-flex;gap:4px;align-items:center;border:1px solid #e8ede3;color:#8b967f;border-radius:5px;padding:3px 6px;background:#fcfdfb}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}th{font-size:10px;font-weight:500;color:#9da693;background:#fafbf8;padding:13px 18px;white-space:nowrap;border-bottom:1px solid #edf1e7}td{padding:15px 18px;border-bottom:1px solid #f1f3ed;color:#61725a;vertical-align:middle;line-height:1.6}tr:last-child td{border-bottom:0}tbody tr:hover{background:#fbfcf8}.click-row{cursor:pointer}.cell-title{font-size:12px;font-weight:500;color:#4b6244;line-height:1.6}.cell-sub{font-size:10px;color:#9aa491;line-height:1.6}.table-compact td{padding:15px 19px}.table-compact th{padding:12px 19px}.table-actions{text-align:right;width:58px}.table-count{display:inline-block;margin-left:7px;background:#f1f5eb;border-radius:4px;padding:1px 5px;color:#849b70;font-size:10px;font-weight:400}.due-list{padding:4px 20px}.due-item{display:flex;gap:11px;padding:17px 0;border-bottom:1px solid #f0f3eb;align-items:flex-start}.due-item:last-child{border-bottom:0}.task-check{width:17px;height:17px;border:1.5px solid #d8e2cf;border-radius:5px;display:grid;place-items:center;color:#5a8850;margin-top:3px;flex-shrink:0}.task-check:hover{background:#e6f0df;border-color:#a1bd8c}.due-title{font-size:12px;color:#5e7154;line-height:1.7}.due-meta{font-size:10px;color:#9ca68f;margin-top:5px}.due-time{margin-left:auto;font-size:10px;color:#a1aa95;white-space:nowrap;padding-top:5px}.due-time.late{color:#bf8e66}.small-empty{padding:35px 20px;text-align:center;color:#9aa68d;font-size:12px;line-height:1.8}.guide{margin-top:22px;border:1px solid #e4ebde;background:#f0f5eb;border-radius:12px;padding:19px 22px}.guide-top{display:flex;justify-content:space-between;gap:16px;align-items:center}.guide h2{font-size:13px;color:#70835b}.guide p{font-size:11px;color:#91a07d;margin-top:5px;line-height:1.8}.guide-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:20px}.guide-step{display:flex;align-items:center;gap:10px}.step-number{width:25px;height:25px;border:1px solid #dbe6cb;background:#f9fbf5;border-radius:50%;display:grid;place-items:center;color:#98aa80;font-size:10px}.guide-step strong{font-size:11px;color:#758763;font-weight:500}.guide-step span{font-size:10px;color:#9caa8c;display:block;margin-top:4px}.welcome-note{font-size:10px;text-align:center;margin-top:26px;color:#adb5a5;letter-spacing:.5px}
.tabs{display:flex;align-items:center;gap:24px;border-bottom:1px solid var(--line);margin-bottom:22px}.tab{padding:12px 2px 14px;display:flex;align-items:center;gap:7px;font-size:13px;color:#8e9a85;border-bottom:2px solid transparent;margin-bottom:-1px}.tab.active{color:#51733e;border-bottom-color:#72985a;font-weight:600}.tab span{font-size:10px;border-radius:4px;padding:1px 5px;background:#eff3e9;color:#8da476}.toolbar{display:flex;align-items:center;gap:10px;padding:16px 20px;flex-wrap:wrap;border-bottom:1px solid var(--line)}.searchbox{position:relative;min-width:200px;flex:1;max-width:330px}.searchbox svg{position:absolute;left:10px;top:10px;color:#a1ab98}.searchbox input{width:100%;padding-left:34px!important}input:not([type=checkbox]),select,textarea{border:1px solid #e1e7da;border-radius:6px;padding:9px 11px;background:#fff;color:#4d6243;min-height:36px;max-width:100%;font-size:12px}input::placeholder,textarea::placeholder{color:#a8b19f}select{min-width:116px;padding-right:26px}.searchbox input{background:#fafcf7}.toolbar .grow{flex:1}.pagination{padding:15px 20px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;color:#9aa58f;font-size:11px}.page-number{background:#ecf3e3;padding:6px 10px;border-radius:5px;color:#708b53}.empty-state{padding:60px 20px;text-align:center}.empty-illustration{width:70px;height:70px;border-radius:20px;background:#f0f5e8;color:#acbd98;display:grid;place-items:center;margin:0 auto 20px}.empty-state h3{font-size:16px;color:#66804f;font-weight:500}.empty-state p{font-size:12px;color:#99a688;line-height:1.9;margin:10px auto 20px;max-width:360px}.cards-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.asset-card{padding:23px;border:1px solid var(--line);border-radius:11px;background:#fff;transition:border-color .2s;cursor:pointer}.asset-card:hover{border-color:#b9cbab}.asset-card .card-top{display:flex;gap:12px;align-items:center;margin-bottom:21px}.asset-card .card-icon{width:44px;height:44px;display:grid;place-items:center;background:#edf4e5;border-radius:11px;color:#92aa77}.asset-card h3{font-size:15px;color:#577247}.asset-card .card-sub{font-size:11px;color:#9aa98c;margin-top:5px}.asset-card .card-detail{font-size:12px;color:#869778;line-height:1.9;min-height:24px;margin:10px 0}.asset-card .card-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:16px;border-top:1px solid #eff3e8;margin-top:19px;font-size:11px;color:#93a27f}.asset-card .card-bottom strong{font-size:19px;color:#6b8752;font-weight:500;margin-right:4px}.list-summary{margin:0 0 17px;color:#9aa38d;font-size:11px}.tool-price{font-size:12px;color:#7d9166;margin:14px 0}.task-groups{display:grid;gap:22px}.task-group-title{font-size:12px;color:#8a9b74;margin:0 0 10px;display:flex;gap:7px;align-items:center}.task-row{display:flex;align-items:center;gap:15px;padding:19px 22px;border-bottom:1px solid #eff3e7}.task-row:last-child{border-bottom:0}.task-row h3{font-size:13px;font-weight:500;color:#617c4b}.task-row .due-meta{margin-top:6px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.info-line{display:flex;justify-content:space-between;gap:15px;padding:14px 0;border-bottom:1px solid #eef2e7;font-size:12px}.info-line:last-child{border:0}.info-line span{color:#94a083}.info-line strong{font-weight:500}.help-card{padding:20px;background:#f3f7ed;border-radius:9px;border:1px solid #e6eddc;font-size:12px;color:#809469;line-height:1.9;margin-top:20px}.data-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:24px}.data-card{padding:26px}.data-card>svg{color:#849d68;margin-bottom:20px}.data-card h2{font-size:15px}.data-card p{font-size:12px;color:#92a47c;line-height:1.9;margin:9px 0 22px;min-height:45px}.data-card select{width:100%;margin-bottom:12px}.data-card .button{width:100%}
.overlay{position:fixed;inset:0;z-index:100;background:#1d2d2545;backdrop-filter:blur(3px);display:flex;justify-content:flex-end}.drawer{width:520px;max-width:100%;height:100dvh;background:#fff;box-shadow:-12px 0 45px #1d39261c;display:flex;flex-direction:column;animation:slide .2s ease}.drawer-head{padding:24px 26px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);flex-shrink:0}.drawer-head h2{font-size:18px}.drawer-head small{font-size:11px;color:#9aa38e;display:block;margin-top:5px}.drawer-body{padding:26px;overflow:auto;flex:1}.drawer-footer{padding:18px 26px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:10px;background:#fdfefb;flex-shrink:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:19px 16px}.field{display:flex;flex-direction:column;gap:8px;min-width:0}.field.full{grid-column:1/-1}.field label{font-size:12px;color:#6a7e55;font-weight:500}.field .required{color:#ba9a74;margin-left:3px}.field input,.field select,.field textarea{width:100%;font-size:13px;min-height:39px}.field textarea{min-height:90px;resize:vertical;line-height:1.7}.field small{font-size:10px;line-height:1.7;color:#9cab8b}.field-title{display:flex;align-items:center;justify-content:space-between}.field-title button{font-size:10px;color:#7a975e}.form-section{grid-column:1/-1;margin-top:6px;padding-top:19px;border-top:1px solid var(--line);color:#9bab8a;font-size:11px;letter-spacing:1px}.checks{display:flex;flex-direction:column;gap:8px;max-height:190px;overflow:auto;border:1px solid var(--line);padding:10px;border-radius:7px}.check-option{display:flex;align-items:center;gap:9px;border-radius:5px;padding:7px;color:#7c9165;font-size:12px}.check-option:hover{background:#f4f8ed}.check-option input{accent-color:var(--green);width:15px;height:15px}.check-option small{margin-left:auto;color:#a4b294}.error-box{color:#ad705b;background:#fff2e9;border:1px solid #efd8c7;border-radius:7px;padding:11px 13px;font-size:12px;line-height:1.7;margin-bottom:18px}.detail-hero{display:flex;align-items:center;gap:15px;margin-bottom:25px}.detail-hero h2{font-size:21px;line-height:1.5}.detail-hero p{font-size:12px;color:#98a78b;margin-top:5px}.detail-section{margin:26px 0}.detail-section h3{font-size:12px;color:#899c76;display:flex;align-items:center;gap:7px;margin-bottom:14px}.details{display:grid;grid-template-columns:110px 1fr;font-size:12px;row-gap:17px;line-height:1.8}.details dt{color:#9ba78c}.details dd{margin:0;color:#5f7848;overflow-wrap:anywhere}.related-card{border:1px solid var(--line);border-radius:8px;padding:12px;margin-bottom:8px;display:flex;align-items:center;gap:10px;width:100%;text-align:left}.related-card:hover{background:#f8fbf3}.timeline-item{padding:0 0 18px 18px;margin-left:5px;border-left:1px solid #e4ecd9;position:relative;font-size:12px;color:#7c9167;line-height:1.8}.timeline-item:before{content:'';position:absolute;left:-4px;top:5px;width:7px;height:7px;border-radius:50%;background:#b4c69c}.timeline-item:last-child{border-color:transparent}.timeline-item time{display:block;font-size:10px;color:#a5b298;margin-top:4px}.note-box{font-size:12px;background:#f8fbf4;border-radius:8px;padding:13px;line-height:1.9;color:#879c6d;white-space:pre-wrap;overflow-wrap:anywhere}.detail-actions{display:flex;gap:8px;flex-wrap:wrap}.modal-wrap{align-items:center;justify-content:center;padding:24px}.modal{background:white;border-radius:14px;width:470px;max-width:100%;max-height:90vh;overflow:auto;box-shadow:0 20px 70px #19302122}.modal-head{padding:24px 25px 15px;display:flex;justify-content:space-between;align-items:center}.modal-head h2{font-size:18px}.modal-body{padding:0 25px 24px;line-height:1.9;color:#869c6c;font-size:13px}.modal-footer{padding:16px 25px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:9px}.workspace-option{border:1px solid var(--line);border-radius:9px;padding:15px;display:flex;align-items:center;gap:11px;width:100%;text-align:left;margin:10px 0}.workspace-option:hover{background:#f2f7eb}.workspace-option.active{border-color:#adc491;background:#f3f8ec}.workspace-option strong{font-size:13px;color:#617c4b}.workspace-option small{display:block;font-size:10px;color:#98ab83;margin-top:4px}.preview-results{max-height:280px;overflow:auto}.preview-line{font-size:12px;padding:9px 0;border-bottom:1px solid #eff3e7}.preview-line.error{color:#b7775d}.toast{position:relative;display:flex;align-items:center;gap:9px;background:#365640;color:#f5f8f1;padding:13px 20px;border-radius:9px;font-size:12px;box-shadow:0 8px 25px #273c281f;animation:toast .2s ease;max-width:480px}.toast.error{background:#8e5d46}#toasts{position:fixed;bottom:28px;left:calc(50% + 70px);transform:translateX(-50%);z-index:300;display:grid;gap:9px;pointer-events:none}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.loading{padding:80px 20px;text-align:center;color:#98ab80}.skeleton{background:linear-gradient(90deg,#edf2e7,#f8faf5,#edf2e7);background-size:200% 100%;animation:pulse 1.4s infinite;border-radius:10px;height:150px}.overflow-safe{overflow-wrap:anywhere}
@keyframes pulse{to{background-position:-200% 0}}@keyframes slide{from{transform:translateX(30px);opacity:.6}to{transform:translateX(0);opacity:1}}@keyframes toast{from{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}
@media(min-width:1550px){.content{padding:36px 44px}.stat-card{min-height:158px}.dashboard-grid{grid-template-columns:1.8fr 1fr}td{padding:18px 22px}.topbar{padding:0 44px}}
@media(max-width:1200px){:root{--sidebar:195px}.content{padding:26px 24px}.sidebar{padding:26px 12px 16px}.topbar{padding:0 24px}.stat-card{padding:18px}.resource-item{padding:0 12px}.dashboard-grid{grid-template-columns:minmax(0,1.65fr) minmax(250px,1fr)}.cards-grid{grid-template-columns:repeat(2,1fr)}.table-compact td,.table-compact th{padding-left:13px;padding-right:13px}.global-search{width:210px}.data-grid{gap:14px}.data-card{padding:20px}}
@media(max-width:1000px){.dashboard-grid{grid-template-columns:1fr}.stats-grid{gap:12px}.data-grid{grid-template-columns:1fr}.data-card p{min-height:0}.resource-item{gap:7px}.resource-item strong{font-size:17px}.resource-item .icon-tile{display:none}.global-search{width:175px}.settings-grid{grid-template-columns:1fr}.heading-actions .date-display{display:none}}
@media(max-width:760px){:root{--sidebar:0px}.sidebar{transform:translateX(-100%);width:224px;box-shadow:12px 0 40px #24392025;transition:transform .2s}.sidebar.open{transform:translateX(0)}.mobile-menu{display:inline-grid}.main{margin:0}.topbar{height:58px;padding:0 16px}.breadcrumb{font-size:11px}.global-search{display:none}.top-separator{display:none}.content{padding:22px 16px}.page-heading{gap:10px;align-items:flex-start}h1{font-size:24px}.page-heading p{font-size:11px;max-width:220px}.heading-actions{margin-top:5px}.heading-actions .button:not(.primary){display:none}.notice{align-items:flex-start;line-height:1.8;font-size:10px}.notice>.row svg{display:none}.stats-grid{grid-template-columns:repeat(2,1fr);gap:10px}.stat-card{min-height:134px;padding:16px}.stat-value{font-size:34px}.resource-strip{grid-template-columns:1fr 1fr;padding:4px 10px;gap:0}.resource-item{padding:14px 9px;border-bottom:1px solid var(--line)}.resource-item:nth-child(2){border-right:0}.resource-item:nth-child(n+3){border-bottom:0}.guide-steps{grid-template-columns:1fr;gap:14px}.guide-top .button{display:none}.cards-grid{grid-template-columns:1fr}.table-wrap{overflow:auto}table{min-width:680px}.table-compact{min-width:560px}.toolbar{padding:14px;gap:9px}.toolbar .searchbox{max-width:none;width:100%;flex-basis:100%}.toolbar select{min-width:100px;flex:1}.toolbar .view-button{display:none}.tabs{gap:24px}.tab{font-size:12px}.drawer-head,.drawer-body,.drawer-footer{padding-left:21px;padding-right:21px}.form-grid{grid-template-columns:1fr}.field{grid-column:1/-1}.drawer{width:100%}.data-grid{gap:15px}.settings-grid{gap:15px}#toasts{left:50%;width:calc(100% - 36px)}.toast{font-size:12px}.heading-actions .button.primary{padding:9px 10px}.task-row{padding:15px;gap:10px}.task-row .due-time{display:none}.detail-hero h2{font-size:19px}.modal-wrap{padding:16px}.panel-heading{padding:17px}.welcome-note{font-size:9px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

/* Readability at normal browser zoom. */
:root{--muted:#637368}.brand-sub,.nav-label,.workspace-switch small,.stat-note,.resource-item small,.cell-sub,.card-sub,.panel-heading .sub,.guide p,.welcome-note{color:#657263}.cell-title{font-size:14px}.cell-sub{font-size:12px}.nav-item{font-size:14px;color:#61705f}.button{font-size:13px}.notice,.notice button{font-size:12px;color:#4f6845}.stat-label{font-size:13px;color:#596b57}.stat-note{font-size:12px}.table-wrap th{font-size:12px;color:#60715f}.field small{font-size:12px;color:#657263}

.device-chip,.cell-sub{white-space:nowrap}.brand-sub{letter-spacing:0;font-size:10px;white-space:nowrap}.table-compact .cell-title{font-size:13px}.table-compact .cell-sub{font-size:11px}
@media(min-width:1001px) and (max-width:1200px){.dashboard-grid{grid-template-columns:1fr}.due-list{display:grid;grid-template-columns:1fr 1fr}}

/* Mobile workspace: thumb navigation, readable records and focused forms. */
.mobile-bottom-nav,.mobile-records{display:none}
body.overlay-open{overflow:hidden}
.mobile-menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.mobile-menu-grid button{display:flex;align-items:center;gap:10px;padding:17px 12px;background:var(--bg);border-radius:10px;text-align:left;color:var(--green)}
.mobile-local-note{margin-top:20px;font-size:12px;color:var(--muted)}
@media(max-width:760px){
  .sidebar{display:none}.topbar{padding-top:env(safe-area-inset-top);height:calc(62px + env(safe-area-inset-top));gap:8px}.topbar>.row{gap:4px}.breadcrumb{font-size:12px}
  .content{padding:20px 16px calc(96px + env(safe-area-inset-bottom));min-width:0}.main{min-width:0}
  .mobile-bottom-nav{display:flex;position:fixed;inset:auto 0 0;z-index:40;background:#fcfefb;border-top:1px solid var(--line);padding:6px 8px calc(6px + env(safe-area-inset-bottom));box-shadow:0 -3px 18px #24392006}
  .mobile-bottom-nav button{flex:1;min-width:0;min-height:54px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;font-size:12px;color:#64766b;border-radius:10px}
  .mobile-bottom-nav button.active{color:#285d41;background:#eaf3e8;font-weight:600}
  .desktop-records{display:none}.mobile-records{display:grid;padding:0 14px;gap:0}
  .mobile-record{padding:18px 0;border-bottom:1px solid var(--line);cursor:pointer;min-width:0}.mobile-record:last-child{border-bottom:0}
  .mobile-record h3{font-size:16px;color:var(--ink);overflow-wrap:anywhere}.record-id{font-size:13px;color:var(--muted);line-height:1.6;margin-top:3px;overflow-wrap:anywhere}
  .mobile-record dl{display:grid;grid-template-columns:82px minmax(0,1fr);gap:11px 8px;margin:16px 0;font-size:14px;line-height:1.6}
  .mobile-record dt{color:var(--muted)}.mobile-record dd{margin:0;overflow-wrap:anywhere}.mobile-record dd small{display:block;color:var(--muted);margin-top:3px;font-size:12px}
  .record-footer{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:var(--muted)}.record-footer>span:last-child{color:var(--green);white-space:nowrap}
  .device-chip{font-size:12px;white-space:normal;overflow-wrap:anywhere}.badge{font-size:12px;padding:5px 7px}
  .button,.button.small,.icon-button{min-height:44px}.icon-button{width:44px;height:44px}.button{font-size:14px}.text-button{min-height:44px;font-size:13px}
  .page-heading p{font-size:13px;max-width:none}.page-heading{flex-wrap:wrap}.heading-actions{margin-top:0}.heading-actions .button:not(.primary){display:inline-flex}.heading-actions .date-display{display:none}
  .notice{flex-direction:column;gap:3px;padding:12px 14px;font-size:12px}.notice button{min-height:36px;font-size:13px}.notice .row{min-width:0}
  .toolbar input,.toolbar select,.field input,.field select,.field textarea,.data-card select{font-size:16px;min-height:46px;max-width:100%;min-width:0}.toolbar select{flex-basis:calc(50% - 12px)}
  .toolbar .searchbox{min-width:0;min-height:46px}.tabs{gap:20px}.tab{min-height:48px;font-size:14px}
  .asset-card{min-width:0}.asset-card h3,.card-sub,.card-detail,.due-title,.task-row h3{overflow-wrap:anywhere}.card-sub,.card-detail{font-size:13px}.cell-sub{white-space:normal}
  .due-title{font-size:14px}.due-meta{font-size:12px;line-height:1.7}.due-time{font-size:12px}.due-list{padding:4px 14px}
  .task-check{width:44px;height:44px;margin:0;border-radius:12px;background:#f6f9f3}.due-item{gap:10px;flex-wrap:wrap}.due-item>.grow{min-width:140px}.due-item>.due-time{margin-left:54px}
  .task-row{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:8px 10px}.task-row>.grow{grid-column:2;grid-row:1}.task-row>.task-check{grid-row:1 / span 2}.task-row>.icon-button{grid-column:3;grid-row:1}
  .task-row .due-time{display:block;grid-column:2;grid-row:2;margin:0;padding:0;white-space:normal}.task-row>.badge{grid-column:2;justify-self:start}.task-row h3{font-size:15px;text-align:left}
  .drawer{height:100dvh}.drawer-head{padding:calc(16px + env(safe-area-inset-top)) 18px 16px;gap:8px}.drawer-head small{font-size:12px;line-height:1.7}.drawer-body{padding:20px 18px;min-height:0;overscroll-behavior:contain}
  .drawer-footer{padding:12px 18px calc(12px + env(safe-area-inset-bottom));flex-wrap:wrap}.drawer-footer .button{flex:1}.field label{font-size:14px}.field-title button{font-size:13px;min-height:44px}
  .check-option{min-height:48px;font-size:14px}.check-option input{min-height:20px;width:20px;height:20px;flex-shrink:0}.check-option small{overflow-wrap:anywhere}
  .details{grid-template-columns:82px minmax(0,1fr);font-size:14px;column-gap:10px}.detail-hero{align-items:flex-start}.detail-hero>div{min-width:0}.detail-hero h2,.detail-hero p{overflow-wrap:anywhere}
  .modal-wrap{padding:12px}.modal{max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overscroll-behavior:contain}.modal-head{padding:16px 18px}.modal-body{padding:0 18px 20px;font-size:14px}.modal-footer{padding:14px 18px;flex-wrap:wrap}
  .guide-top .button{display:inline-flex}.guide-top{align-items:flex-start;flex-wrap:wrap}.guide h2{font-size:14px}.guide p,.guide-step strong,.guide-step span{font-size:12px}
  .panel-footer{flex-wrap:wrap;padding:10px 14px;gap:4px}.panel-heading{gap:6px}.panel-heading .sub{font-size:12px}.panel-heading h2{font-size:15px}.pagination{flex-wrap:wrap;gap:8px}
  #toasts{bottom:calc(82px + env(safe-area-inset-bottom));left:50%}.toast{font-size:14px}
}

.overview-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px 18px;margin:0 0 22px;font-size:12px;color:var(--muted)}
.overview-actions>span{margin-right:auto}
.dashboard-grid.single-panel{grid-template-columns:1fr}
.auth-page{min-height:100dvh;display:grid;grid-template-columns:minmax(0,1fr);place-items:center;padding:36px 20px;background:radial-gradient(ellipse at top,#edf5e7,transparent 65%),var(--bg)}
.auth-card{width:430px;max-width:100%;min-width:0;background:#fff;padding:38px;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow)}
.auth-brand{font-size:23px;font-weight:700;color:var(--green);margin-bottom:30px}.auth-brand span{font-size:14px;font-weight:400;margin-left:10px;color:var(--muted)}
.auth-card h1{font-size:25px}.auth-intro{font-size:14px;color:var(--muted);line-height:1.8;margin:12px 0 24px}
.auth-tabs{display:flex;gap:8px;padding:5px;background:var(--bg);border-radius:10px;margin-bottom:24px}.auth-tabs button{flex:1;min-height:44px;border-radius:7px;color:var(--muted)}.auth-tabs button.active{background:#fff;color:var(--green);box-shadow:0 2px 6px #213c2d0a;font-weight:600}
.auth-form{display:grid;gap:14px}.auth-form label{display:grid;gap:9px;font-size:14px}.auth-form input{min-width:0;width:100%;min-height:48px;font-size:16px;padding:12px;border:1px solid #dce5dc;border-radius:8px}.auth-form small{font-size:12px;color:var(--muted);line-height:1.7;margin-top:-6px}
.auth-error{color:#9c4a37;font-size:13px;line-height:1.7}.auth-error:empty{display:none}.auth-submit{min-height:48px;margin-top:8px;font-size:15px}.auth-help{font-size:12px;color:var(--muted);line-height:1.9;margin-top:22px}.auth-local{font-size:11px;color:var(--muted);line-height:1.7;border-top:1px solid var(--line);margin-top:20px;padding-top:16px}
@media(max-width:760px){.auth-page{padding:calc(26px + env(safe-area-inset-top)) 16px calc(26px + env(safe-area-inset-bottom));align-items:start}.auth-card{padding:26px 22px;border-radius:16px}.auth-brand{margin-bottom:25px}}
@media(max-width:760px){.overview-actions{gap:4px 16px}.overview-actions>span{flex-basis:100%}.stats-grid:has(.stat-card:only-child){grid-template-columns:1fr}}
