:root{color-scheme:light;--canvas:#f8f7f4;--surface:#fff;--surface2:#f4f3f0;--ink:#282824;--muted:#84837c;--line:#eae8e2;--accent:#c28745;--accent-rgb:194,135,69;--shadow:0 9px 30px rgba(35,31,22,.032);font-family:'DM Sans','Noto Sans SC',system-ui,sans-serif}
body.service{--accent:#4d867b;--accent-rgb:77,134,123}
*{box-sizing:border-box}
body{margin:0;background:var(--canvas);color:var(--ink);font-size:14px;-webkit-font-smoothing:antialiased}
button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}
.shell{min-height:100vh;display:grid;grid-template-columns:236px minmax(0,1fr)}
.sidebar{background:#fdfcfb;border-right:1px solid var(--line);padding:29px 15px 22px;display:flex;flex-direction:column;gap:28px;min-height:100vh}
.brand{display:flex;align-items:center;gap:12px;padding:0 11px}.brandmark{width:37px;height:37px;background:#302f2c;border-radius:11px;color:#fff;display:grid;place-items:center;font-size:17px;font-weight:700;letter-spacing:-.7px}.brandname{font-weight:700;letter-spacing:-.3px;font-size:15px}.branddesc{font-size:10px;color:var(--muted);margin-top:2px;letter-spacing:.1px}
.nav-label{font-size:10px;font-weight:600;color:#b0aea8;padding:4px 15px 11px;letter-spacing:1.3px}.nav-group{display:flex;flex-direction:column;gap:4px}.nav-link{border:0;background:none;display:flex;align-items:center;gap:12px;padding:12px 15px;text-align:left;color:#73716b;font-size:13px;border-radius:9px;width:100%;transition:.15s}.nav-link svg{width:17px;height:17px;stroke-width:1.7}.nav-link:hover{color:var(--ink);background:#f4f3f0}.nav-link.active{background:rgba(var(--accent-rgb),.11);color:#30302b;font-weight:650}.nav-link.active svg{color:var(--accent)}
.sidebar-bottom{margin-top:auto;border-top:1px solid var(--line);padding:18px 9px 0}.side-demo{font-size:11px;color:#a18a6d;background:#faf2e4;border:1px solid #f0e3cf;border-radius:7px;padding:9px 10px;line-height:1.6}.side-version{margin-top:14px;font-size:10px;color:#b0ada6}
.main{min-width:0}.topbar{height:83px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:0 46px;background:rgba(255,255,255,.64)}.breadcrumbs{font-size:12px;color:var(--muted)}.breadcrumbs span{color:#292925;font-weight:650;margin-left:9px}.top-actions{display:flex;gap:16px;align-items:center}.top-chip{display:flex;align-items:center;gap:7px;background:#fff;border:1px solid var(--line);padding:7px 11px;border-radius:7px;font-size:11px;color:#74716c}.dot{width:7px;height:7px;background:var(--accent);border-radius:50%}.role-picker{background:transparent;border:none;outline:none;max-width:100px;color:#353530;font-weight:600;font-size:12px}.avatar{width:30px;height:30px;border-radius:50%;background:#eae8df;display:grid;place-items:center;font-weight:700;font-size:11px}
.content{padding:37px 46px 70px;max-width:1590px;margin:0 auto}.eyebrow{color:var(--accent);font-size:10px;font-weight:750;letter-spacing:1.8px;text-transform:uppercase}.pagehead{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin-bottom:31px}.pagehead h1{font-size:27px;font-weight:650;letter-spacing:-1px;margin:7px 0 7px}.subtitle{color:#929088;font-size:12px;line-height:1.8}.btn{border:1px solid var(--line);padding:10px 15px;border-radius:8px;background:#fff;font-size:12px;color:#46453f;font-weight:600;white-space:nowrap}.btn:hover{border-color:#d2cdc2}.btn-primary{background:#302f2a;color:#fff;border-color:#302f2a}.btn-primary:hover{background:#4a4840}.btn:disabled{background:#e7e5e1;border-color:#e7e5e1;color:#aaa}.btn-soft{background:rgba(var(--accent-rgb),.10);border-color:transparent;color:var(--accent)}
.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:24px 25px 20px;min-height:148px;box-shadow:var(--shadow);position:relative;overflow:hidden}.kpi-label{color:#8f8d85;font-size:12px}.kpi-value{font-size:28px;font-weight:700;letter-spacing:-1.4px;margin-top:19px;font-variant-numeric:tabular-nums}.kpi-note{font-size:11px;color:#aaa79f;margin-top:9px}.kpi-mark{position:absolute;right:23px;top:22px;color:var(--accent);opacity:.7}.kpi-mark svg{width:19px}
.cards2{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(330px,1fr);gap:18px;margin-top:18px}.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:25px 27px;box-shadow:var(--shadow);min-width:0}.card-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.card-title h2{font-size:14px;font-weight:650;letter-spacing:-.2px;margin:0}.card-label{font-size:11px;color:#aaa}.card-description{font-size:11px;color:#aaa;line-height:1.6}.chart{height:212px;margin-top:24px;display:flex;align-items:end;gap:13px;border-bottom:1px solid #eae8e3;padding:0 6px 0}.bar-cell{flex:1;display:flex;flex-direction:column;justify-content:end;align-items:center;height:100%;position:relative}.bar{border-radius:5px 5px 0 0;width:100%;max-width:39px;background:#deddd8;min-height:3px;transition:height .2s}.bar.active{background:var(--accent)}.bar-value{position:absolute;top:-21px;font-size:9px;color:var(--accent);font-weight:700}.axis-labels{display:flex;gap:13px;padding:10px 6px 0;color:#aaa7a0;font-size:10px}.axis-labels>span{flex:1;text-align:center}
.meter{margin:23px 0 27px}.meter-row{display:flex;justify-content:space-between;font-size:12px;margin-bottom:12px}.meter-track{height:9px;background:#f2f0ec;border-radius:10px;overflow:hidden}.meter-fill{height:100%;background:var(--accent);border-radius:10px}.rule-list{margin-top:11px}.rule-item{padding:13px 0;border-bottom:1px solid #f0eeea;display:flex;justify-content:space-between;gap:16px;font-size:12px}.rule-item:last-child{border-bottom:0}.rule-item span:first-child{color:#8f8b85}.rule-item span:last-child{font-weight:650}.detail-small{font-size:11px;color:var(--muted);line-height:1.9}.pill{border:1px solid #e8e6e1;border-radius:16px;padding:5px 8px;color:#88847e;background:#fafaf8;font-size:10px;white-space:nowrap}.pill.accent{color:var(--accent);border-color:rgba(var(--accent-rgb),.24);background:rgba(var(--accent-rgb),.08)}.pill.warn{color:#af782f;background:#fbf2e3;border-color:#f1e1c7}
.table-card{background:#fff;border:1px solid var(--line);border-radius:12px;margin-top:18px;overflow:hidden}.table-heading{display:flex;align-items:center;justify-content:space-between;padding:22px 25px;border-bottom:1px solid var(--line);gap:15px}.table-heading h2{font-size:14px;font-weight:650;margin:0}.table-heading .mini{font-size:11px;color:var(--muted)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap;font-size:12px}th{font-weight:500;color:#98958e;background:#fdfcfb;padding:13px 24px;font-size:11px;border-bottom:1px solid #efeee9}td{padding:17px 24px;border-bottom:1px solid #f2f0eb;color:#55544e;font-variant-numeric:tabular-nums}tr:last-child td{border-bottom:0}tbody tr:hover{background:#fdfcf9}.name{font-weight:650;color:#373630}.avatar-small{display:inline-grid;place-items:center;width:30px;height:30px;background:#eeece5;border-radius:50%;font-size:11px;font-weight:650;margin-right:10px;color:#59574f}.strong-num{font-weight:700;color:#35342e}.text-link{border:0;background:none;color:var(--accent);font-size:12px;font-weight:650;padding:2px 0}.text-link:hover{text-decoration:underline}
.banner{margin-bottom:20px;background:#fbf3e6;border:1px solid #f4e6d0;border-radius:9px;padding:13px 16px;font-size:11px;color:#a17a47;line-height:1.7;display:flex;gap:11px;align-items:flex-start}.banner svg{width:17px;flex:none;margin-top:1px}
.split-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:18px}.info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.info-tile{padding:20px;border-radius:10px;background:var(--surface2)}.info-tile label{display:block;font-size:11px;color:#8e8c86;margin-bottom:10px}.info-tile strong{font-size:19px}.divider{height:1px;background:var(--line);margin:18px 0}.muted{color:var(--muted)}.stat-title{font-size:20px;font-weight:650}.empty{padding:46px 28px;text-align:center;color:var(--muted);font-size:12px;line-height:2}.empty-emoji{font-size:30px;margin-bottom:7px}.section-gap{margin-top:22px}.form-row{display:flex;align-items:center;gap:11px;flex-wrap:wrap}.select{padding:10px 13px;border-radius:8px;border:1px solid var(--line);background:#fff;color:#504e48;min-width:160px}.field{border:1px solid var(--line);padding:10px 12px;border-radius:8px;outline:none;background:#fff}.field:focus{border-color:var(--accent)}.filezone{border:1px dashed #d8d3c8;border-radius:12px;padding:27px;display:flex;flex-direction:column;align-items:center;gap:11px;background:#fdfcfb;color:#77736b}.filezone input{max-width:100%;font-size:12px}.result{margin-top:21px}.error{font-size:11px;color:#b36e43;margin-top:7px}.success{color:#50816f}.notice-list{display:flex;flex-direction:column;gap:12px;margin-top:15px}.notice{font-size:12px;line-height:1.7;background:#faf9f6;border-left:2px solid #c4a273;padding:11px 13px;color:#6d695f}.rule-set{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.rule-set h3{font-size:13px;margin:0 0 10px}.rule-set .card{height:100%}
.boot-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#aaa;font-size:13px}.spinner{width:26px;height:26px;border:2px solid #eae6df;border-top-color:#9d988e;border-radius:50%;animation:rot .7s linear infinite}@keyframes rot{to{transform:rotate(360deg)}}
footer{margin-top:28px;font-size:10px;color:#b0aba3;display:flex;justify-content:space-between}
@media(max-width:1150px){.grid4{grid-template-columns:repeat(2,minmax(0,1fr))}.cards2{grid-template-columns:1fr}.content{padding:30px 25px}.topbar{padding:0 25px}.sidebar{width:210px}.shell{grid-template-columns:210px minmax(0,1fr)}}
@media(max-width:730px){.shell{grid-template-columns:1fr}.sidebar{width:auto;min-width:0;min-height:auto;padding:calc(16px + env(safe-area-inset-top)) calc(16px + env(safe-area-inset-right)) 16px calc(16px + env(safe-area-inset-left));gap:11px;border-right:0;border-bottom:1px solid var(--line)}.brand{padding:0 4px}.nav-label,.sidebar-bottom{display:none}.nav-group{flex-direction:row;overflow:auto;gap:4px;max-width:100%;-webkit-overflow-scrolling:touch}.nav-link{padding:10px 12px;white-space:nowrap;width:auto;font-size:11px;flex-shrink:0}.nav-link svg{display:none}.topbar{height:auto;min-height:58px;padding:12px calc(17px + env(safe-area-inset-right)) 12px calc(17px + env(safe-area-inset-left));gap:10px}.breadcrumbs{font-size:11px;overflow-wrap:anywhere}.top-actions{flex-shrink:0;gap:10px}.top-chip{display:none}.content{padding:24px calc(15px + env(safe-area-inset-right)) calc(55px + env(safe-area-inset-bottom)) calc(15px + env(safe-area-inset-left))}.pagehead h1{font-size:23px}.pagehead{align-items:flex-start;flex-wrap:wrap}.pagehead .btn{font-size:10px;padding:8px}.grid4{gap:10px}.kpi{padding:17px;min-height:128px}.kpi-value{font-size:23px}.kpi-label{font-size:11px}.cards2{gap:12px}.card{padding:20px}.split-layout,.rule-set{grid-template-columns:1fr}.table-heading{padding:18px;flex-wrap:wrap}.field{max-width:100%;min-width:0}.table-wrap th,.table-wrap td{padding:13px 17px}.chart{gap:7px}.axis-labels{gap:7px}footer{gap:12px;flex-wrap:wrap}}
@supports(height:100dvh){.shell,.boot-screen{min-height:100dvh}@media(min-width:731px){.sidebar{min-height:100dvh}}}
.boot-screen{padding:calc(24px + env(safe-area-inset-top)) calc(24px + env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) calc(24px + env(safe-area-inset-left));text-align:center;line-height:1.8;color:var(--muted)}.boot-screen h2{color:var(--ink);font-size:20px}.boot-screen p{max-width:36em;overflow-wrap:anywhere}.boot-screen .btn{margin-top:12px}button:focus-visible,a:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
