:root{color-scheme:light;--font-sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--color-navy-950: #0d1b2e;--color-navy-900: #142640;--color-navy-800: #1b3557;--color-primary-700: #145d66;--color-primary-600: #16717a;--color-primary-500: #1d858e;--color-primary-100: #dff3f2;--color-primary-50: #f0f9f8;--color-bg: #f3f5f7;--color-surface: #ffffff;--color-surface-muted: #f8fafb;--color-border: #d8dfe5;--color-border-strong: #b9c5ce;--color-text: #1b2733;--color-text-muted: #647280;--color-success: #16734a;--color-success-bg: #e8f6ee;--color-warning: #915d08;--color-warning-bg: #fff4d8;--color-danger: #b4232c;--color-danger-bg: #feeaec;--color-info: #275ea3;--color-info-bg: #eaf1fb;--shadow-sm: 0 1px 2px rgb(13 27 46 / 7%);--shadow-md: 0 12px 30px rgb(13 27 46 / 12%);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--sidebar-width: 248px}*{box-sizing:border-box}html{min-width:320px;background:var(--color-bg)}body{margin:0;min-width:320px;min-height:100vh;color:var(--color-text);background:var(--color-bg);font-family:var(--font-sans);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:var(--color-primary-700);text-decoration-thickness:1px;text-underline-offset:2px}a:hover{color:var(--color-primary-500)}:focus-visible{outline:3px solid rgb(29 133 142 / 35%);outline-offset:2px}h1,h2,h3,p{margin-top:0}h1{margin-bottom:6px;font-size:clamp(1.55rem,3vw,2rem);line-height:1.2;letter-spacing:-.025em}h2{margin-bottom:8px;font-size:1.2rem;line-height:1.25}h3{margin-bottom:6px;font-size:1rem}.skip-link{position:fixed;z-index:1000;top:8px;left:8px;padding:10px 14px;transform:translateY(-150%);border-radius:var(--radius-sm);color:#fff;background:var(--color-navy-950)}.skip-link:focus{transform:none}.eyebrow{margin-bottom:8px;color:var(--color-primary-600);font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.muted{color:var(--color-text-muted)}.text-right{text-align:right}.nowrap{white-space:nowrap}.button{display:inline-flex;min-height:38px;align-items:center;justify-content:center;gap:7px;padding:8px 14px;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;font-weight:700;line-height:1.2;text-decoration:none;transition:background .15s ease,border-color .15s ease,transform .15s ease}.button:hover{text-decoration:none}.button:active{transform:translateY(1px)}.button:disabled{cursor:not-allowed;opacity:.55}.button--primary{color:#fff;background:var(--color-primary-700);border-color:var(--color-primary-700)}.button--primary:hover{color:#fff;background:var(--color-primary-600)}.button--secondary{color:var(--color-text);background:#fff;border-color:var(--color-border-strong)}.button--secondary:hover{color:var(--color-text);background:var(--color-surface-muted);border-color:#8ea0ad}.button--danger{color:var(--color-danger);background:#fff;border-color:#e4aab0}.button--danger:hover{color:var(--color-danger);background:var(--color-danger-bg)}.button--ghost{color:var(--color-primary-700);background:transparent}.button--small{min-height:32px;padding:6px 10px;font-size:.82rem}.button--wide{width:100%}.icon-button{display:inline-grid;width:34px;height:34px;flex:0 0 auto;place-items:center;border:0;border-radius:var(--radius-sm);color:inherit;background:transparent;cursor:pointer}.icon-button:hover{background:#ffffff1a}.field{display:grid;align-content:start;gap:6px}.field label,.field .field-label{color:#344250;font-size:.82rem;font-weight:700}.field small{color:var(--color-text-muted)}.field-output{display:block;min-height:28px;padding-top:2px;color:var(--color-primary-700);font-size:1.12rem;font-weight:800;font-variant-numeric:tabular-nums}.label-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.label-row a{font-size:.8rem;font-weight:650}input:not([type=checkbox]):not([type=radio]),select,textarea{width:100%;min-height:39px;padding:8px 10px;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-text);background:#fff;transition:border-color .15s,box-shadow .15s}textarea{min-height:80px;resize:vertical}input:hover,select:hover,textarea:hover{border-color:#8294a1}input:focus,select:focus,textarea:focus{outline:0;border-color:var(--color-primary-500);box-shadow:0 0 0 3px #1d858e24}input:disabled,select:disabled,textarea:disabled{color:#6f7b85;background:#f0f3f5;cursor:not-allowed}input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--color-danger)}.checkbox{display:inline-flex;align-items:flex-start;gap:8px;cursor:pointer}.checkbox input{width:17px;height:17px;margin:1px 0 0;accent-color:var(--color-primary-700)}.form-stack{display:grid;gap:16px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}.form-error{margin:0;padding:9px 11px;border-radius:var(--radius-sm);color:var(--color-danger);background:var(--color-danger-bg);font-size:.84rem}.form-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;padding-top:4px}.auth-layout{display:grid;min-height:100vh;grid-template-columns:minmax(320px,1fr) minmax(420px,560px);background:#fff}.auth-brand{position:relative;display:flex;align-items:center;gap:28px;overflow:hidden;padding:clamp(38px,7vw,100px);color:#fff;background:linear-gradient(145deg,var(--color-navy-950),var(--color-navy-800))}.auth-brand:after{position:absolute;width:360px;height:360px;right:-120px;bottom:-180px;border:1px solid rgb(255 255 255 / 14%);border-radius:50%;box-shadow:0 0 0 70px #ffffff08,0 0 0 140px #ffffff05;content:""}.auth-brand h1{max-width:680px;margin-bottom:18px;font-size:clamp(2rem,4.5vw,4rem);letter-spacing:-.045em}.auth-brand p:not(.eyebrow){max-width:580px;color:#c8d5e5;font-size:1.05rem}.auth-brand .eyebrow{color:#77d2d2}.brand-mark{display:grid;width:38px;height:38px;flex:0 0 auto;place-items:center;border-radius:11px;color:var(--color-navy-950);background:#67ccca;font-size:1.15rem;font-weight:900}.brand-mark--large{width:66px;height:66px;border-radius:18px;font-size:2rem}.auth-card{align-self:center;width:min(100% - 40px,440px);margin:40px auto}.auth-card__header{margin-bottom:28px}.auth-card__header h2{margin-bottom:8px;font-size:1.7rem}.auth-card__header>p:last-child,.auth-hint{color:var(--color-text-muted)}.auth-hint{margin:0;text-align:center;font-size:.84rem}.notice{padding:14px;border:1px solid var(--color-border);border-radius:var(--radius-md)}.notice p{margin:3px 0 0}.notice--success{color:var(--color-success);background:var(--color-success-bg);border-color:#abd9bf}.notice--warning{color:var(--color-warning);background:var(--color-warning-bg);border-color:#ead08e}.notice--info{color:var(--color-info);background:var(--color-info-bg);border-color:#b5cceb}.app-shell{min-height:100vh}.sidebar{position:fixed;z-index:40;inset:0 auto 0 0;display:flex;width:var(--sidebar-width);flex-direction:column;color:#e6edf6;background:var(--color-navy-950)}.sidebar__brand{display:flex;min-height:74px;align-items:center;gap:11px;padding:16px 18px;border-bottom:1px solid rgb(255 255 255 / 8%)}.sidebar__brand strong,.sidebar__brand small,.sidebar__footer strong,.sidebar__footer small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar__brand strong{color:#fff;font-size:1.02rem}.sidebar__brand small{color:#8fa2b9;font-size:.72rem}.sidebar nav{display:grid;min-height:0;overflow-y:auto;flex:1;align-content:start;gap:3px;padding:16px 10px}.sidebar nav a{display:flex;min-height:42px;align-items:center;gap:10px;padding:9px 11px;border-radius:7px;color:#bdc9d8;font-weight:620;text-decoration:none}.sidebar nav a:hover{color:#fff;background:#ffffff0f}.sidebar nav a[aria-current=page]{color:#fff;background:#204866}.nav-icon{display:grid;width:22px;place-items:center;color:#73c4c5;font-size:1.1rem}.sidebar__footer{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;padding:13px 12px;border-top:1px solid rgb(255 255 255 / 8%)}.sidebar__footer strong{color:#fff;font-size:.8rem}.sidebar__footer small{color:#91a2b5;font-size:.7rem}.avatar{display:grid;width:34px;height:34px;place-items:center;border-radius:50%;color:#08282d;background:#76d1ce;font-weight:850}.workspace{min-height:100vh;margin-left:var(--sidebar-width)}.topbar{display:none;min-height:58px;align-items:center;gap:10px;padding:9px 14px;color:#fff;background:var(--color-navy-950)}.topbar strong,.topbar small{display:block}.topbar small{color:#9fb0c3;font-size:.7rem}.menu-button{width:38px;height:38px;border:0;border-radius:var(--radius-sm);color:#fff;background:#ffffff14;font-size:1.2rem}.mobile-backdrop{display:none}.content{width:min(100%,1560px);min-height:100vh;margin:0 auto;padding:28px clamp(18px,3vw,40px) 48px}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px}.page-header p{max-width:760px;margin-bottom:0;color:var(--color-text-muted)}.page-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}.panel{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm)}.panel__header{display:flex;min-height:55px;align-items:center;justify-content:space-between;gap:14px;padding:12px 16px;border-bottom:1px solid var(--color-border)}.panel__header h2,.panel__header p{margin:0}.panel__header p{color:var(--color-text-muted);font-size:.8rem}.panel__body{padding:16px}.panel+.panel{margin-top:16px}.toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:10px;margin-bottom:14px}.toolbar .field{min-width:170px}.toolbar .field--grow{min-width:min(100%,260px);flex:1}.stack{display:grid;gap:16px}.table-wrap{max-width:100%;overflow-x:auto}.data-table{width:100%;border-collapse:collapse;border-spacing:0}.data-table th{padding:9px 12px;border-bottom:1px solid var(--color-border-strong);color:var(--color-text-muted);background:var(--color-surface-muted);font-size:.72rem;font-weight:800;letter-spacing:.035em;text-align:left;text-transform:uppercase;white-space:nowrap}.data-table td{padding:10px 12px;border-bottom:1px solid var(--color-border);vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#f9fbfc}.data-table .cell-main{display:block;color:var(--color-text);font-weight:720}.data-table .cell-sub{display:block;margin-top:2px;color:var(--color-text-muted);font-size:.78rem}.data-table input,.data-table select{min-width:115px}.data-table input[type=number]{min-width:78px}.table-link{font-weight:720}.badge{display:inline-flex;min-height:24px;align-items:center;gap:5px;padding:3px 8px;border-radius:999px;color:#53616e;background:#eef1f3;font-size:.73rem;font-weight:750;white-space:nowrap}.badge--success{color:var(--color-success);background:var(--color-success-bg)}.badge--warning{color:var(--color-warning);background:var(--color-warning-bg)}.badge--danger{color:var(--color-danger);background:var(--color-danger-bg)}.badge--info{color:var(--color-info);background:var(--color-info-bg)}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.stat-card{min-height:115px;padding:16px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm)}.stat-card__label{color:var(--color-text-muted);font-size:.78rem;font-weight:700}.stat-card__value{display:block;margin:6px 0 2px;color:var(--color-navy-900);font-size:1.7rem;font-weight:820;letter-spacing:-.035em}.stat-card__meta{color:var(--color-text-muted);font-size:.76rem}.quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.quick-card{display:block;padding:16px;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);background:#fff;text-decoration:none;box-shadow:var(--shadow-sm)}.quick-card:hover{border-color:#91aaa9;color:var(--color-text);box-shadow:var(--shadow-md)}.quick-card strong,.quick-card span{display:block}.quick-card span{margin-top:5px;color:var(--color-text-muted);font-size:.8rem}.state-panel{display:flex;min-height:220px;align-items:center;justify-content:center;gap:14px;padding:30px;color:var(--color-text-muted);text-align:left}.state-panel strong{display:block;color:var(--color-text);font-size:1rem}.state-panel p{max-width:480px;margin:3px 0 10px}.state-panel--error strong{color:var(--color-danger)}.state-icon{display:grid;width:42px;height:42px;flex:0 0 auto;place-items:center;border-radius:50%;color:var(--color-primary-700);background:var(--color-primary-100);font-weight:850}.state-panel--error .state-icon{color:var(--color-danger);background:var(--color-danger-bg)}.spinner{width:26px;height:26px;flex:0 0 auto;border:3px solid #d2dce1;border-top-color:var(--color-primary-600);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.standalone-state{display:grid;min-height:100vh;place-content:center;justify-items:center;padding:24px;text-align:center}.standalone-state .state-icon{width:62px;height:62px;margin-bottom:16px}.standalone-state p{color:var(--color-text-muted)}.modal-backdrop{position:fixed;z-index:100;inset:0;display:grid;place-items:center;overflow-y:auto;padding:20px;background:#0815259e}.modal{width:min(100%,620px);max-height:calc(100vh - 40px);overflow-y:auto;border-radius:var(--radius-lg);background:#fff;box-shadow:0 25px 70px #0000004d}.modal--large{width:min(100%,960px)}.modal__header{display:flex;align-items:start;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid var(--color-border)}.modal__header h2,.modal__header p{margin:0}.modal__header p{color:var(--color-text-muted);font-size:.8rem}.modal__body{padding:20px}.modal__footer{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid var(--color-border);background:var(--color-surface-muted)}.tabs{display:flex;gap:3px;overflow-x:auto;margin-bottom:16px;padding:3px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:#eaf0f2}.tabs button{min-height:34px;flex:0 0 auto;padding:6px 12px;border:0;border-radius:var(--radius-sm);color:var(--color-text-muted);background:transparent;cursor:pointer;font-weight:700}.tabs button[aria-selected=true]{color:var(--color-text);background:#fff;box-shadow:var(--shadow-sm)}.definition-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.definition-item{padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-muted)}.definition-item dt{color:var(--color-text-muted);font-size:.73rem;font-weight:700}.definition-item dd{margin:4px 0 0;font-weight:750}.money-positive{color:var(--color-success);font-variant-numeric:tabular-nums;font-weight:750}.money-negative{color:var(--color-danger);font-variant-numeric:tabular-nums;font-weight:750}.money{font-variant-numeric:tabular-nums;font-weight:750}.journal-groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.journal-group{padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-muted)}.journal-group input{margin-top:6px}.master-class-list{display:flex;flex-wrap:wrap;gap:5px}.master-class-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:var(--radius-sm);background:var(--color-info-bg);font-size:.75rem}.audit-change{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;color:var(--color-text-muted);font-size:.76rem}.audit-change code{overflow-wrap:anywhere;color:var(--color-text)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;margin:-1px;padding:0;border:0;clip:rect(0 0 0 0);white-space:nowrap}.link-button{padding:0;border:0;color:var(--color-primary-700);background:transparent;cursor:pointer;font:inherit;font-weight:700;text-decoration:underline;text-underline-offset:2px}.link-button:hover{color:var(--color-primary-900)}.modal-close{display:inline-grid;width:36px;height:36px;flex:0 0 auto;place-items:center;padding:0;border:1px solid var(--color-border);border-radius:50%;color:var(--color-text-muted);background:#fff;cursor:pointer;font-size:1.2rem}.modal-close:hover{color:var(--color-text);background:var(--color-surface-muted)}.stat-card__value--text{font-size:1.05rem;line-height:1.35}.stat-card__value--money{font-size:clamp(1.3rem,2vw,1.85rem);font-variant-numeric:tabular-nums}.compact-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.compact-header h2,.compact-header h3,.compact-header p{margin:0}@media(max-width:1100px){.stat-grid,.form-grid--4,.definition-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:820px){.auth-layout{grid-template-columns:1fr}.auth-brand{display:none}.sidebar{transform:translate(-100%);transition:transform .18s ease;box-shadow:var(--shadow-md)}.sidebar.is-open{transform:none}.workspace{margin-left:0}.topbar{display:flex}.mobile-backdrop{position:fixed;z-index:30;inset:0;display:block;border:0;visibility:hidden;background:#08152573;opacity:0;transition:opacity .18s,visibility .18s}.mobile-backdrop.is-visible{visibility:visible;opacity:1}.content{min-height:calc(100vh - 58px);padding-top:20px}.quick-grid{grid-template-columns:1fr}}@media(max-width:620px){body{font-size:13.5px}.content{padding-right:12px;padding-left:12px}.page-header{display:grid}.page-actions{justify-content:start}.page-actions .button{flex:1}.stat-grid,.form-grid,.form-grid--3,.form-grid--4,.definition-grid{grid-template-columns:1fr}.stat-card{min-height:98px}.toolbar{align-items:stretch}.toolbar .field{width:100%}.toolbar .button{flex:1}.panel{border-right:0;border-left:0;border-radius:0}.panel__header,.panel__body{padding-right:12px;padding-left:12px}.table-wrap{margin-right:-12px;margin-left:-12px}.data-table th:first-child,.data-table td:first-child{padding-left:12px}.modal-backdrop{align-items:end;padding:0}.modal{width:100%;max-height:92vh;border-radius:16px 16px 0 0}.modal__body{padding:16px}.modal__footer{position:sticky;z-index:1;bottom:0}.auth-card{width:min(100% - 28px,440px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
