:root{--ink:#19243a;--muted:#788398;--line:#e6eaf0;--bg:#f5f7fa;--nav:#14223b;--nav2:#1b2e4d;--teal:#0f897f;--teal-dark:#087469;--white:#fff;--shadow:0 8px 30px rgba(19,38,65,.045)}
*{box-sizing:border-box}html{font-family:'DM Sans','Noto Sans SC',sans-serif;color:var(--ink);background:var(--bg)}body{margin:0;font-size:14px}a{color:#0b7d78;text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{display:flex;min-height:100vh}.sidebar{width:256px;flex:none;position:sticky;top:0;height:100vh;background:linear-gradient(180deg,var(--nav),#102039);color:#dce5f0;padding:24px 15px 20px;display:flex;flex-direction:column;overflow:auto}.brand{display:flex;align-items:center;gap:11px;color:#fff;font-size:18px;font-weight:700;letter-spacing:.03em;padding:2px 11px 20px}.brand:hover{text-decoration:none}.brand small{display:block;font-family:'DM Sans',sans-serif;font-size:9px;letter-spacing:.24em;color:#79a7af;font-weight:700;margin-top:3px}.brand-mark{display:grid;place-items:center;background:#24b7a5;color:#fff;border-radius:11px;width:38px;height:38px;font-size:19px;box-shadow:0 7px 20px #20b2a84d}.sidebar-caption{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#7890ab;font-weight:700;padding:17px 13px 8px}.nav-link{display:flex;align-items:center;gap:11px;min-height:39px;color:#b6c5d7;padding:9px 12px;border-radius:8px;font-size:13px;font-weight:500}.nav-link:hover,.nav-link.active{background:var(--nav2);color:#fff;text-decoration:none}.nav-link.active{box-shadow:inset 3px 0 #22bba9}.nav-link span:first-child:not(.company-dot){width:16px;font-size:17px;color:#83a0bb}.company-dot{width:7px;height:7px;background:#5c8c9b;border-radius:50%;flex:none}.nav-link.active .company-dot{background:#25c5ac}.company-nav{max-height:340px;overflow:auto}.sidebar-empty{padding:0 12px}.sidebar-bottom{margin-top:auto;padding-top:18px}.signed-in{display:flex;align-items:center;gap:10px;padding:15px 10px 6px;border-top:1px solid #ffffff21}.avatar{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#355b71;color:#fff;font-size:13px}.text-button{border:0;background:none;color:#0d847a;padding:5px 0;font-weight:600}.sidebar .text-button{color:#8fa9bc;margin-left:50px;font-size:12px}.main{min-width:0;flex:1}.topbar{height:64px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 36px;color:#6d7b8e;font-size:13px}.topbar-date{color:#9aa5b2}.page{max-width:1540px;margin:0 auto;padding:34px 36px 72px}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:27px}.eyebrow{font-family:'DM Sans',sans-serif;color:var(--teal);font-size:10px;font-weight:700;letter-spacing:.22em;margin-bottom:8px}.page-heading h1{font-size:29px;letter-spacing:-.04em;margin:0 0 8px;font-weight:700}.page-heading p{color:var(--muted);margin:0;line-height:1.7}.button{display:inline-flex;align-items:center;justify-content:center;border-radius:8px;padding:10px 16px;min-height:40px;border:1px solid transparent;font-weight:700;font-size:12px;white-space:nowrap;transition:.15s}.button:hover{text-decoration:none;transform:translateY(-1px)}.button.primary{background:var(--teal);color:#fff;box-shadow:0 4px 12px #0f897f26}.button.primary:hover{background:var(--teal-dark)}.button.secondary{background:#fff;color:#41546b;border-color:#dbe2e9}.button.small{padding:5px 10px;min-height:30px}.button.wide{width:100%;margin-top:15px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:32px}.metric-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.metric,.panel,.table-card,.form-card,.account-card{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.metric{padding:20px 21px;min-width:0}.metric-label{color:#708095;font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:space-between}.metric-label span{font-size:17px;color:#96c8c4}.metric-value{font-family:'DM Sans','Noto Sans SC',sans-serif;font-size:25px;letter-spacing:-.04em;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:15px 0 7px}.metric-value.small{font-size:20px}.metric-note{color:#9aa5b2;font-size:11px}.section-head{display:flex;align-items:center;justify-content:space-between;margin:27px 1px 14px}.section-head.compact{margin:0 0 15px}.section-head h2,.panel h2{font-size:17px;letter-spacing:-.03em;margin:0 0 5px}.section-head p{font-size:12px;color:#98a4b2;margin:0}.section-head>a{font-size:12px;font-weight:700}.table-card{overflow:hidden}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th{text-align:left;background:#f9fbfc;color:#8592a2;font-size:11px;text-transform:uppercase;letter-spacing:.05em;font-weight:700;padding:13px 18px;border-bottom:1px solid var(--line)}td{padding:15px 18px;border-bottom:1px solid #edf0f3;color:#3d4a5d;font-size:12px}tr:last-child td{border-bottom:0}tr:hover td{background:#fcfdfd}.numeric{text-align:right;font-variant-numeric:tabular-nums}.strong-link,.strong{font-weight:700;color:#243347}.table-sub{display:block;font-size:11px;color:#9da8b5;margin-top:4px}.negative{color:#d0535a!important}.status{display:inline-flex;border-radius:99px;padding:4px 9px;font-size:10px;font-weight:700;white-space:nowrap}.status.large{padding:8px 12px;font-size:12px}.status.neutral{background:#eef2f6;color:#63748b}.status.okay{background:#e8f7f2;color:#148a72}.status.warning{background:#fff1df;color:#b56a10}.empty{text-align:center;color:#a4acb7;padding:28px 12px!important}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:22px}.two-columns.wide-left{grid-template-columns:minmax(0,1.4fr) minmax(280px,.8fr)}.panel{padding:22px;min-width:0}.panel h3{font-size:14px;margin:0 0 14px}.attention-list,.simple-list{display:flex;flex-direction:column}.attention{display:flex;align-items:center;gap:11px;padding:12px 0;border-bottom:1px solid var(--line)}.attention:last-child{border:0}.attention-icon{height:27px;width:27px;border-radius:8px;display:grid;place-items:center;font-weight:700}.attention-icon.amber{background:#fff2dc;color:#d18b25}.attention-icon.red{background:#ffeded;color:#cf6464}.attention strong{font-size:12px}.attention small,.simple-list small{display:block;color:#97a2b0;margin-top:3px;font-size:11px}.simple-list>a{display:flex;justify-content:space-between;gap:10px;padding:13px 0;border-bottom:1px solid var(--line);color:#28384c;font-weight:600}.simple-list>a:last-child{border:0}.quick-links{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:25px 0}.quick-links a{background:#fff;border:1px solid var(--line);border-radius:10px;padding:16px 18px;color:#30445b;font-weight:700;display:flex;justify-content:space-between}.quick-links a span{color:#2aa699}.quick-links a:hover{text-decoration:none;border-color:#85cbc2}.inline-form{display:flex;gap:8px;align-items:center}.input{border:1px solid #dce3ea;background:#fff;color:var(--ink);padding:10px 11px;min-height:40px;border-radius:7px;outline:0;width:100%}.input:focus{border-color:#35b5a6;box-shadow:0 0 0 3px #18aa9824}textarea.input{resize:vertical}.input.short{width:145px;min-height:30px;padding:5px 8px}.toolbar,.subnav{display:flex;gap:7px;margin:8px 0 19px;overflow-x:auto}.chip{border:1px solid var(--line);border-radius:99px;padding:7px 13px;background:#fff;color:#667689;font-size:12px;white-space:nowrap}.chip.selected{background:#e8f7f4;color:#0d847a;border-color:#b9e2dc;font-weight:700}.subnav{border-bottom:1px solid var(--line);gap:27px}.subnav a{padding:11px 2px;color:#79889a;font-weight:600;white-space:nowrap}.subnav a.selected{border-bottom:2px solid var(--teal);color:var(--teal)}.form-card{padding:26px;max-width:920px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 22px}.form-grid.single{grid-template-columns:1fr}.form-field{display:flex;flex-direction:column;gap:6px}.form-field label,label{font-weight:700;font-size:12px;color:#536276}.form-field b{color:#c63e49}.form-field small{font-size:11px;color:#96a1ad}.form-field .field-error{color:#c6434d}.form-field input[type=checkbox]{height:17px;width:17px}.checkbox-field{justify-content:flex-end}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:29px;border-top:1px solid var(--line);padding-top:20px}.flash{padding:12px 15px;border-radius:8px;margin:0 0 15px;font-size:12px}.flash.success{background:#e8f7ef;color:#167b61}.flash.error{background:#ffeced;color:#a93440}.flash.warning{background:#fff4e4;color:#9f651d}.details,.report-lines{display:grid;grid-template-columns:135px 1fr;gap:14px 12px;margin:0}.details dt,.report-lines dt{font-size:12px;color:#8391a1}.details dd,.report-lines dd{margin:0;font-size:12px;font-weight:600;text-align:right}.details .emphasis{font-size:20px;color:#0e8176}.exception-box{background:#fff7ea;border:1px solid #ffe4b5;border-radius:8px;color:#8b641f;padding:14px;margin-top:22px;font-size:12px}.exception-box p{white-space:pre-wrap;line-height:1.7}.exception-box small{font-size:11px}.timeline{padding:0 0 0 19px;margin:12px 0 24px;border-left:1px solid #dce4e9;list-style:none}.timeline li{position:relative;padding:3px 0 21px 13px;color:#a0aab5;font-weight:700}.timeline li:before{position:absolute;left:-25px;top:6px;content:'';width:10px;height:10px;border:3px solid #dce4e9;background:#fff;border-radius:50%}.timeline li.done{color:#2a4355}.timeline li.done:before{border-color:#2ab6a3}.timeline small{display:block;color:#99a6b3;font-size:11px;font-weight:400;margin-top:3px}.panel form>label{display:block;margin:13px 0 6px}.panel form .button{margin-top:13px}.account-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.account-card{padding:20px}.account-top{display:flex;justify-content:space-between;align-items:center;color:#92a0b0;font-size:11px}.account-card h3{margin:13px 0 3px;font-size:16px}.account-card p{margin:0;color:#9ca9b5;font-size:11px}.account-balance{font-size:22px;font-weight:700;letter-spacing:-.035em;margin:20px 0 6px}.account-card small{color:#a1acb8;font-size:10px}.match-option{display:flex;gap:12px;padding:13px;border:1px solid var(--line);border-radius:8px;margin:11px 0;cursor:pointer}.match-option:hover{border-color:#64bcb3}.period-row{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.period-row small{display:block;color:#98a5b2;margin-top:3px}.period-row form{display:flex;gap:6px;align-items:center}.hint{margin-top:17px;border-left:3px solid #bcd5d7;padding:8px 12px;color:#8394a4;background:#f7fafb;font-size:11px;line-height:1.6}.journal-lines{display:flex;flex-direction:column;gap:14px}.journal-line{display:grid;grid-template-columns:1.25fr 1fr .8fr .8fr .8fr 1fr;gap:8px;padding:14px;background:#f8fafb;border-radius:8px}.journal-line .input{min-width:0}.report-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.report-meta{display:flex;gap:8px;margin-bottom:18px}.report-lines{grid-template-columns:1fr auto;padding-top:12px}.report-lines dt,.report-lines dd{padding:9px 0;border-bottom:1px solid #f0f2f5}.report-lines .total{color:#1b3144;font-weight:700;border:0;margin-top:8px;font-size:14px}.empty-page{text-align:center;border:1px dashed #cad6dd;border-radius:12px;padding:60px 20px;background:#fff;color:#758497}.empty-page h2{color:#304153}.large-amount{font-size:30px;font-weight:700}.muted{color:var(--muted)}.login-page{display:grid;grid-template-columns:48% 52%;min-height:100vh;background:#fff}.login-panel{background:radial-gradient(circle at 25% 15%,#255978,#14253f 55%,#0e1b33);color:#fff;padding:56px 8vw;position:relative;overflow:hidden}.login-brand{padding:0}.login-panel h1{font-size:42px;line-height:1.35;margin:20vh 0 20px;letter-spacing:-.06em}.login-panel h1 em{font-style:normal;color:#5cdec9}.login-panel p{color:#a4bdd0;line-height:1.8}.login-decoration{position:absolute;bottom:-40px;left:4vw;right:3vw;height:150px;display:flex;gap:16px;align-items:flex-end;opacity:.38}.login-decoration div{flex:1;background:linear-gradient(#59cdbd,#1e778b);border-radius:8px 8px 0 0}.login-decoration div:nth-child(1){height:35%}.login-decoration div:nth-child(2){height:72%}.login-decoration div:nth-child(3){height:55%}.login-decoration div:nth-child(4){height:92%}.login-decoration div:nth-child(5){height:63%}.login-decoration div:nth-child(6){height:100%}.login-form-wrap{display:grid;place-items:center;padding:30px}.login-card{width:min(360px,100%)}.login-card h2{font-size:28px;margin:3px 0 6px}.login-card p{margin:0 0 28px}.login-card label{display:block;margin:18px 0 8px}.login-card .wide{margin-top:25px}.login-card .login-help{font-size:11px;color:#a1acb8;margin-top:20px;text-align:center}
@media(max-width:1100px){.sidebar{width:218px}.page{padding:28px 22px}.topbar{padding:0 22px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-grid{grid-template-columns:1fr}.account-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.journal-line{grid-template-columns:repeat(3,1fr)}}
@media(max-width:720px){.app-shell{display:block}.sidebar{width:100%;height:auto;position:static;display:block;padding:12px 14px}.brand{padding:0 2px 8px;font-size:15px}.brand-mark{height:29px;width:29px;font-size:14px}.sidebar-caption,.company-nav,.sidebar-bottom{display:none}.sidebar>.nav-link{display:inline-flex;padding:7px 8px}.sidebar>.nav-link:not(:first-of-type){font-size:11px}.topbar{height:46px;padding:0 15px}.page{padding:23px 14px 50px}.page-heading{align-items:flex-start;flex-direction:column}.page-heading h1{font-size:24px}.metric-grid,.metric-grid.three{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.metric{padding:14px}.metric-value{font-size:18px}.metric-note{font-size:10px}.two-columns,.two-columns.wide-left,.account-grid,.quick-links{grid-template-columns:1fr}.report-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.journal-line{grid-template-columns:repeat(2,1fr)}.panel,.form-card{padding:17px}.period-row{align-items:flex-start;flex-direction:column}.period-row form{width:100%}.login-page{grid-template-columns:1fr}.login-panel{min-height:190px;padding:20px}.login-panel h1{font-size:24px;margin:25px 0 10px}.login-panel p{display:none}.login-decoration{display:none}.login-form-wrap{padding:50px 22px}.topbar-date{display:none}}
@media(max-width:720px){.company-nav{display:flex;max-height:none;overflow-x:auto;gap:6px;margin:8px 0}.company-nav .nav-link{white-space:nowrap;min-width:max-content;background:#223956}.sidebar-bottom{display:flex;align-items:center;justify-content:space-between;padding:7px 2px 0}.sidebar-bottom .signed-in{padding:3px 0;border:0}.sidebar-bottom .text-button{margin:0}.sidebar>.nav-link{margin-right:3px}.topbar{display:none}}
.preview-banner{position:sticky;top:0;z-index:100;background:#fff3cc;color:#735000;border-bottom:1px solid #e9cf78;text-align:center;padding:8px 16px;font-size:13px;font-weight:700}
.role-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:22px}.role-grid article{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px;box-shadow:var(--shadow)}.role-grid h2{font-size:16px;margin:14px 0 7px}.role-grid p{font-size:12px;color:var(--muted);line-height:1.7;margin:0}.role-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;font-weight:800}.role-icon.manager{background:#fff3d7;color:#a76b0e}.role-icon.finance{background:#e2f6f1;color:#0b806e}.role-icon.cashier{background:#f2edff;color:#7151b7}.role-icon.employee{background:#edf1f7;color:#52657d}.permission-layout{align-items:start}.field-error{display:block;color:#c6434d;font-size:11px;margin-top:5px}.change-card{border:1px solid var(--line);border-radius:9px;padding:15px;margin-top:12px;background:#fbfcfd}.change-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.change-card p{margin:8px 0;color:#5f6d7e;line-height:1.6}.change-card small{color:#929eac}.change-actions{display:flex;gap:8px;margin-top:12px}.change-actions form{display:flex;gap:7px;flex:1}.change-actions .input{min-height:34px;padding:7px 9px}.change-actions .button{min-height:34px;padding:7px 11px;margin:0}
@media(max-width:1250px){.role-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.role-grid{grid-template-columns:1fr}}
.sidebar .nav-count{width:auto;min-width:24px;max-width:4em;flex:none;margin-left:auto;padding:2px 6px;border-radius:20px;background:#eaf0ff;color:#315fff;font-size:12px;line-height:1.4;font-weight:700;text-align:center}

/* Five account roles share one responsive comparison grid. */
.role-grid.five-roles{grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr))}
