@import url('/static/base.css');
@media(max-width:760px){.form-layout .permission-grid{grid-template-columns:minmax(85px,1fr) repeat(4,minmax(35px,42px));gap:6px}.form-layout .permission-grid .head{font-size:11px}}

dialog{border:1px solid var(--line);border-radius:18px;padding:22px;color:var(--ink);width:min(370px,calc(100vw - 28px));box-shadow:0 20px 60px #102d332e}dialog::backdrop{background:#102d3380}.calendar-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:15px}.calendar-header button{background:var(--mint);color:var(--green);padding:5px 12px}.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:16px;text-align:center}.calendar-days>span{font-size:11px;color:var(--muted);padding:8px 0}.calendar-days>button{min-height:40px;min-width:0;padding:4px;background:white;color:var(--ink);font-family:system-ui,sans-serif;font-weight:400}.calendar-days>button[aria-pressed=true]{background:var(--green);color:white}.calendar-days>button:hover{background:var(--mint);color:var(--green)}.calendar-trigger{width:100%;justify-content:flex-start;background:#fffefa;color:var(--ink);border-color:#ccd7c9;font-family:system-ui,sans-serif;font-weight:400}.calendar-trigger:after{content:'▦';margin-left:auto;color:var(--green)}

.app-shell{min-height:100dvh;display:grid;grid-template-columns:248px 1fr}
.sidebar{background:var(--forest);color:#e8f0eb;padding:28px 20px;display:flex;flex-direction:column;gap:26px;position:sticky;top:0;height:100dvh}
.brand{display:flex;gap:12px;align-items:center;color:inherit;text-decoration:none}.brand img{width:50px;height:50px;border-radius:50%;border:2px solid #d9bd66}.brand strong{font-size:22px;display:block}.brand small{font-size:12px;color:#bed4c6}
.sidebar nav{display:grid;gap:6px}.sidebar nav a{padding:12px 14px;border-radius:10px;display:flex;align-items:center;gap:12px;text-decoration:none;color:#c5d8cc;font-size:16px}.sidebar nav a:hover,.sidebar nav a[aria-current=page]{background:#ffffff16;color:white}.sidebar nav a[aria-current=page]{box-shadow:inset 3px 0 var(--gold)}
.nav-mark{width:24px;text-align:center;font-family:system-ui,sans-serif;font-size:21px}.sidebar-foot{margin-top:auto;border-top:1px solid #ffffff1f;padding-top:20px;font-size:14px;color:#bed4c6}.sidebar-foot form{margin-top:12px}.sidebar-foot button{color:inherit;background:transparent;border:1px solid #ffffff35;width:100%}
.workspace{min-width:0}.topbar{padding:20px 36px;border-bottom:1px solid var(--line);background:#fffefa;display:flex;justify-content:space-between;align-items:center;gap:16px}.topbar .eyebrow{margin:0}.user-badge{display:flex;gap:10px;align-items:center;font-size:14px}.avatar{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--mint);color:var(--forest);font-weight:700}.user-badge small{display:block;color:var(--muted)}
.content{max-width:1400px;margin:auto;padding:30px 36px 64px}.page-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:24px}.page-heading h1{margin:4px 0 7px;font-size:30px}.page-heading p{margin:0;color:var(--muted);line-height:1.7}.eyebrow{font-size:12px;color:var(--muted);letter-spacing:.02em}.breadcrumb{font-size:14px;color:var(--muted);margin-bottom:16px}.breadcrumb a{color:var(--green)}
.summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:30px}.summary{background:white;border:1px solid var(--line);border-radius:16px;padding:23px}.summary.primary{background:var(--forest);color:white;border:0;position:relative;overflow:hidden}.summary.primary:after{content:'';position:absolute;border:1px solid #ffffff18;border-radius:50%;width:180px;height:180px;right:-75px;top:-70px;pointer-events:none}.summary-label{font-size:15px;color:var(--muted)}.primary .summary-label{color:#c6ded0}.summary-value{font:700 clamp(24px,2.6vw,36px)/1.6 system-ui,sans-serif;letter-spacing:-1px;overflow-wrap:anywhere}.summary-value small{font:400 14px/1.5 var(--font);letter-spacing:0}.summary-note{font-size:12px;color:var(--muted);margin-top:4px}.primary .summary-note{color:#c6ded0}
.section-title{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:26px 0 16px}.section-title h2{margin:0;font-size:21px}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:18px}.project-card{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;transition:border-color .15s,transform .15s}.project-card:hover{border-color:#8aaa98;transform:translateY(-2px)}.project-card .card-main{padding:22px}.project-card h2{font-size:20px;margin:15px 0 5px;line-height:1.6}.project-card h2 a{color:var(--ink);text-decoration:none}.project-card p{color:var(--muted);font-size:14px;margin:0 0 18px}.project-icon{display:grid;place-items:center;width:42px;height:42px;background:var(--mint);color:var(--green);border-radius:12px;font-size:22px}.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.card-finances{display:grid;grid-template-columns:1fr 1fr;gap:12px;font-size:14px}.card-finances span{display:block;color:var(--muted);font-size:12px;margin-bottom:3px}.card-bottom{padding:14px 22px;background:#f8faf6;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:14px}.card-bottom a{text-decoration:none;color:var(--green);font-weight:600}.income{color:#147653}.expense{color:#ac4d39}
.panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;margin-bottom:24px}.panel h2{font-size:21px;margin:0 0 18px}.panel.flush{padding:0;overflow:hidden}.panel-head{padding:18px 22px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line)}.panel-head h2{margin:0}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.toolbar .field{margin:0}.toolbar input{max-width:240px}.table-scroll{overflow-x:auto}.ledger-table{min-width:760px}.ledger-table .description{min-width:190px;max-width:380px;white-space:normal}.ledger-table .amount{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.voucher{display:block;color:var(--muted);font-size:11px;margin-top:4px;font-family:system-ui,sans-serif}.table-actions{white-space:nowrap}.table-actions a,.table-actions button{padding:6px 9px;font-size:13px;min-height:36px}.table-footer{padding:16px 22px;display:flex;justify-content:space-between;align-items:center;gap:12px;color:var(--muted);font-size:13px}
.form-layout{max-width:820px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid .wide{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.choice-row{display:flex;gap:10px;flex-wrap:wrap}.choice-row label{border:1px solid var(--line);border-radius:9px;padding:10px 16px;cursor:pointer;display:flex;align-items:center;gap:8px}.choice-row label:has(input:checked){background:var(--mint);border-color:var(--green);color:var(--green)}.choice-row input{width:auto}.voice-panel{background:#eef5ee;border:1px solid #d8e5d9;padding:18px;border-radius:12px;margin-bottom:24px}.voice-panel p{font-size:14px;color:var(--muted);line-height:1.7;margin:9px 0 0}.voice-panel button{display:flex;align-items:center;gap:10px}.voice-panel output{display:block;margin-top:12px;line-height:1.7}.permission-grid{display:grid;grid-template-columns:minmax(160px,1fr) repeat(4,80px);gap:10px;align-items:center}.permission-grid input{width:20px;height:20px}.permission-grid .head{color:var(--muted);font-size:13px}.audit-row{padding:14px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:160px 1fr;gap:16px;font-size:14px}.audit-row:last-child{border:0}.audit-row time{color:var(--muted)}
.login-page{min-height:100dvh;display:grid;grid-template-columns:1fr 1fr;background:#fffefa}.login-story{background:var(--forest);color:white;display:flex;flex-direction:column;justify-content:center;padding:clamp(40px,8vw,110px)}.login-story img{width:112px;height:112px;border-radius:50%;margin-bottom:34px}.login-story h1{font-size:clamp(30px,4vw,48px);line-height:1.5;max-width:440px;margin:0 0 22px}.login-story p{color:#c4d9cd;font-size:18px;line-height:1.9;max-width:420px}.login-form{display:grid;place-items:center;padding:36px}.login-form>div{width:100%;max-width:380px}.login-form h2{font-size:28px;margin:0 0 8px}.login-form .button{width:100%;margin-top:12px}.login-form .muted{margin-bottom:28px}.mobile-brand{display:none}.mobile-nav{display:none}.empty-state{text-align:center;padding:54px 24px;background:#fff;border:1px dashed #bdccbf;border-radius:16px;color:var(--muted)}.empty-state h2{color:var(--ink);font-size:22px}.empty-state p{max-width:440px;margin:12px auto 24px;line-height:1.8}
.print-heading{display:none}.offline-banner{background:#fff1ce;border-bottom:1px solid #ead297;padding:10px 22px;text-align:center;color:#715211;font-size:14px}.offline-banner[hidden]{display:none}
@media(max-width:1000px){.app-shell{grid-template-columns:210px 1fr}.sidebar{padding:24px 14px}.content{padding:25px 22px 50px}.topbar{padding:18px 22px}.summary{padding:18px}.summary-grid{gap:10px}.login-story{padding:45px}}
@media(max-width:760px){.app-shell{display:block}.sidebar{display:none}.topbar{padding:14px 18px}.content{padding:22px 16px 105px}.topbar .eyebrow{display:none}.mobile-brand{display:flex;gap:9px;align-items:center;color:var(--ink);text-decoration:none;font-weight:700;font-size:19px}.mobile-brand img{width:35px;height:35px;border-radius:50%}.user-badge{font-size:12px}.user-badge .avatar{display:none}.page-heading{align-items:flex-start;gap:12px;flex-wrap:wrap}.page-heading h1{font-size:26px}.page-heading .button{min-height:44px;font-size:14px}.summary-grid{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:24px}.summary.primary{grid-column:1/-1}.summary.primary .summary-value{font-size:34px}.summary-value{font-size:24px}.summary-label{font-size:13px}.summary-note{font-size:11px}.project-grid{grid-template-columns:1fr}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;background:#fffefa;border-top:1px solid var(--line);justify-content:space-around;gap:4px;padding:9px 4px max(9px,env(safe-area-inset-bottom));z-index:20}.mobile-nav a{flex:1;text-align:center;color:var(--muted);font-size:11px;text-decoration:none;padding:4px;border-radius:8px}.mobile-nav .nav-mark{display:block;margin:auto auto 2px;font-size:20px}.mobile-nav a[aria-current=page]{background:var(--mint);color:var(--green)}.panel{padding:18px}.panel-head{padding:16px}.form-grid{grid-template-columns:1fr;gap:15px}.form-grid .wide{grid-column:auto}.form-actions{position:sticky;bottom:76px;background:white;padding:14px 0 0}.form-actions .button{flex:1;text-align:center}.permission-grid{grid-template-columns:minmax(110px,1fr) repeat(4,45px);gap:8px;font-size:13px}.audit-row{grid-template-columns:1fr;gap:4px}.login-page{display:block}.login-story{padding:28px}.login-story img{width:64px;height:64px;margin-bottom:16px}.login-story h1{font-size:27px;margin-bottom:0}.login-story p{display:none}.login-form{padding:32px 24px}.table-footer{align-items:flex-start}.toolbar{width:100%}.toolbar input{max-width:none}}
@media print{body{background:white;color:#111;font-size:11px}.sidebar,.topbar,.mobile-nav,.no-print,.page-heading .toolbar,.table-actions,.offline-banner{display:none!important}.app-shell{display:block}.content{padding:0;max-width:none}.print-heading{display:block;text-align:center;margin-bottom:20px}.print-heading img{width:60px;height:60px;border-radius:50%}.summary-grid{display:flex;gap:20px}.summary,.summary.primary{background:white!important;color:black;border:0!important;padding:8px}.summary-label,.summary.primary .summary-label,.summary-note,.primary .summary-note{color:black}.summary-value{font-size:20px}.panel{border:0;padding:0}.table-scroll{overflow:visible}.ledger-table{min-width:0;width:100%;font-size:10px}.ledger-table th,.ledger-table td{padding:7px 5px;border:1px solid #bbb}.ledger-table tr{break-inside:avoid}.ledger-table thead{display:table-header-group}.page-heading h1{font-size:20px}a{color:inherit;text-decoration:none}button{display:none}.income,.expense{color:#111}.table-footer{display:none}@page{size:A4;margin:16mm 11mm}}
