:root{--navy:#092a4a;--blue:#1268b3;--cyan:#25a8b8;--orange:#f06432;--ink:#14283a;--muted:#607286;--line:#d6e0e8;--bg:#eef4f8;--surface:#fff;--danger:#b42318;--warning:#9a6700;--success:#107569;--radius:10px;--shadow:0 8px 24px rgba(9,42,74,.09)}
*{box-sizing:border-box}html{font-family:"Segoe UI","Microsoft YaHei UI","PingFang SC",Arial,sans-serif;color:var(--ink);background:var(--bg)}body{margin:0;min-height:100dvh;font-size:15px;line-height:1.55}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button,.button{border:0;border-radius:8px;background:var(--blue);color:#fff;padding:.65rem 1rem;font-weight:650;cursor:pointer;white-space:nowrap}.button{display:inline-block}.button:hover{background:#0d5798;text-decoration:none}button:active,.button:active{transform:translateY(1px)}:focus-visible{outline:3px solid rgba(37,168,184,.4);outline-offset:2px}.skip-link{position:fixed;left:1rem;top:-4rem;z-index:20;background:var(--navy);color:#fff;padding:.6rem 1rem;border-radius:8px}.skip-link:focus{top:1rem}.app-header{min-height:68px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1.5rem;padding:.55rem clamp(1rem,3vw,2.5rem);background:var(--navy);color:#fff;box-shadow:0 2px 12px rgba(9,42,74,.2)}.brand{display:flex;align-items:center;gap:.7rem;color:#fff}.brand:hover{text-decoration:none}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border:1px solid rgba(255,255,255,.35);border-radius:8px;background:var(--cyan);font-weight:800;font-size:1.2rem}.brand strong,.brand small{display:block}.brand small{color:#bcd1e2;font-size:.72rem}.main-nav{display:flex;align-items:center;gap:.18rem;min-width:0}.main-nav>a,.nav-more>summary{color:#dceaf4;padding:.55rem .65rem;border-radius:7px;font-size:.88rem;cursor:pointer;list-style:none;white-space:nowrap}.main-nav>a:hover,.nav-more>summary:hover{background:rgba(255,255,255,.1);text-decoration:none}.nav-more{position:relative}.nav-more summary::-webkit-details-marker{display:none}.nav-more div{position:absolute;top:2.5rem;left:0;min-width:150px;padding:.4rem;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);z-index:10}.nav-more div a{display:block;padding:.5rem .65rem;color:var(--ink)}.user-menu{display:grid;grid-template-columns:auto auto;column-gap:.65rem;align-items:center}.user-menu span{font-weight:650}.user-menu small{color:#bcd1e2}.user-menu form{grid-column:2;grid-row:1/3}.link-button{background:transparent;color:#fff;padding:.3rem;border:1px solid rgba(255,255,255,.35)}.nav-toggle{display:none}.page-shell{width:min(1440px,100%);margin:0 auto;padding:clamp(1.25rem,3vw,2.5rem)}.auth-shell{display:grid;place-items:center;min-height:100dvh;padding:1.25rem}.app-header+.auth-shell{min-height:calc(100dvh - 68px)}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.3rem}.page-head h1{margin:0;color:var(--navy);font-size:clamp(1.55rem,2.5vw,2.25rem);letter-spacing:-.025em}.page-head p{margin:.35rem 0 0;color:var(--muted)}.kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);overflow:hidden}.kpi{padding:1.15rem;border-right:1px solid var(--line)}.kpi:last-child{border-right:0}.kpi dt{color:var(--muted);font-size:.82rem}.kpi dd{margin:.25rem 0 0;color:var(--navy);font:700 clamp(1.15rem,2vw,1.55rem)/1.2 ui-monospace,"Cascadia Mono",monospace}.kpi-risk dd{color:var(--orange)}.section{margin-top:1.6rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.2rem}.section h2{margin:0 0 .8rem;font-size:1.05rem;color:var(--navy)}.table-region{overflow-x:auto;max-width:100%;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}table{width:100%;border-collapse:collapse;min-width:680px}caption{text-align:left;padding:.9rem 1rem;color:var(--navy);font-weight:700;background:#f8fbfd}th,td{text-align:left;padding:.72rem .85rem;border-bottom:1px solid var(--line);vertical-align:top}th{color:#476177;background:#f8fbfd;font-size:.78rem;letter-spacing:.02em}tbody tr:hover{background:#f6fafc}tbody tr:last-child td{border-bottom:0}.money{font-family:ui-monospace,"Cascadia Mono",monospace;font-variant-numeric:tabular-nums;white-space:nowrap}.currency{font-size:.72em;color:var(--muted)}.status{display:inline-block;border-radius:999px;padding:.15rem .5rem;font-size:.78rem;font-weight:700;background:#e7edf2;color:#41576b}.status-normal,.status-active,.status-settled{background:#dff3ef;color:var(--success)}.status-warning,.status-partial_payment{background:#fff1ce;color:var(--warning)}.status-danger,.status-overdue,.status-frozen,.status-cancelled{background:#fee4e2;color:var(--danger)}.empty-state{padding:2rem;text-align:center;color:var(--muted)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.field{display:grid;gap:.35rem}.field label{font-weight:650;color:#304a60}.field input,.field select,.field textarea{width:100%;padding:.65rem .72rem;border:1px solid #aebdca;border-radius:8px;background:#fff;color:var(--ink)}.field small{color:var(--muted)}.auth-card{width:min(440px,100%);padding:2rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.auth-card h1{margin:.2rem 0;color:var(--navy)}.auth-card>p{color:var(--muted);margin-top:.35rem}.auth-card form{display:grid;gap:1rem;margin-top:1.5rem}.error-page{text-align:center;margin:12vh auto;max-width:520px}.error-code{font:800 4rem/1 ui-monospace,monospace;color:var(--cyan);margin:0}.error-page h1{color:var(--navy)}.toolbar{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}.subnav{display:flex;gap:.6rem;flex-wrap:wrap}.subnav a{padding:.45rem .7rem;border:1px solid var(--line);border-radius:8px;background:#fff}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:1100px){.app-header{grid-template-columns:auto auto 1fr}.nav-toggle{display:block;grid-column:2;background:transparent;border:1px solid rgba(255,255,255,.35)}.main-nav{display:none;grid-column:1/-1;flex-wrap:wrap;padding-bottom:.5rem}.main-nav.is-open{display:flex}.user-menu{justify-self:end;grid-column:3;grid-row:1}.kpi-grid{grid-template-columns:repeat(2,1fr)}.kpi{border-bottom:1px solid var(--line)}}
@media(max-width:680px){body{font-size:14px}.app-header{grid-template-columns:1fr auto;padding:.55rem .8rem}.brand small,.user-menu{display:none}.nav-toggle{grid-column:2}.main-nav{grid-column:1/-1;align-items:stretch}.main-nav>a,.nav-more{width:calc(50% - .2rem)}.nav-more div{position:static;margin-top:.3rem}.page-shell{padding:1rem}.page-head{align-items:flex-start;flex-direction:column}.kpi-grid,.form-grid{grid-template-columns:1fr}.kpi{border-right:0}.section{padding:.85rem}.table-region{margin-inline:-.15rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.entry-panel{margin-bottom:1.2rem}.entry-panel>summary{cursor:pointer;color:var(--navy);font-weight:750}.entry-panel[open]>summary{margin-bottom:1rem}.form-result{align-self:center;margin:0;color:var(--success);font-weight:650}
.ci-action{display:flex;align-items:end}.ci-result{grid-column:1/-1;line-height:1.7}
/* Fallback for deployed login templates that omit the auth-shell class. */
body:has(.auth-card) .page-shell{display:grid;place-items:center;min-height:100dvh;padding:1.25rem}
.app-header+.page-shell:has(.auth-card){min-height:calc(100dvh - 68px)}
