/* Application shell: primary work, grouped tools and contextual sections. */
body:not(.login-page){background:#f4f7fa}
aside{width:260px;padding:22px 16px 16px;background:linear-gradient(165deg,#102a3b,#0c1e2e);border-right:1px solid #ffffff09;gap:0}
aside .brand.brand-home{width:157px;padding:0 5px;background:transparent;margin:0;text-align:center}
aside .brand-home img{width:147px;margin:auto}
aside .brand.brand-home small{font-size:7px;letter-spacing:1.2px;text-align:center;margin-top:4px}
aside #theme-toggle{position:absolute;right:16px;top:29px;width:38px;height:38px;min-height:38px;margin:0;padding:8px;font-size:0;border:1px solid #48627755;border-radius:12px;background:#ffffff08;text-align:center}
aside #theme-toggle::after{content:'☾';font-size:20px}
html[data-theme=dark] aside #theme-toggle::after{content:'☀'}
aside #main-navigation{display:block;margin:19px 0 0;padding:0;flex:1}
.nav-caption{display:block;margin:0 12px 8px;color:#7897aa;font-size:11px;font-weight:700;letter-spacing:1.6px}
.nav-secondary-caption{margin-top:19px}
.nav-primary{display:grid;gap:4px}
aside .nav-link,aside .nav-group>summary{display:flex;align-items:center;gap:11px;width:100%;min-height:42px;padding:10px 12px;border:0;border-radius:11px;background:transparent;color:#b4c9d8;text-align:left;font-size:13px;line-height:1.35;font-weight:500;cursor:pointer;transition:background .15s,color .15s}
aside .nav-link svg,aside .nav-group>summary svg{width:19px;height:19px;flex:0 0 19px;color:#87a6ba}
aside .nav-link:hover,aside .nav-group>summary:hover{background:#ffffff08;color:#f1fbff;filter:none}
aside .nav-link.active{background:linear-gradient(95deg,#12607677,#1d465955);color:#9aecf0;box-shadow:inset 3px 0 #45cbd1;font-weight:650}
aside .nav-link.active svg{color:#7ce6ec}
aside .nav-group{margin:4px 0;border:0;padding:0}
aside .nav-group>summary{list-style:none;user-select:none}
aside .nav-group>summary::-webkit-details-marker{display:none}
.nav-chevron{margin-left:auto;font-size:22px;line-height:15px;transition:transform .15s;color:#84a1b2}
.nav-group[open]>.group-active,.nav-group>summary.group-active{color:#92e1e6}
.nav-group[open]>summary .nav-chevron{transform:rotate(90deg)}
aside .nav-children{margin:3px 0 8px 21px;padding:3px 0 3px 11px;border-left:1px solid #40627966;display:grid;gap:3px}
aside .nav-children .nav-link{font-size:12px;min-height:37px;padding:9px 12px;border-radius:8px}
aside #nav-settings{margin-top:12px;padding-top:12px;border-top:1px solid #506c7e33}
aside #nav-utilities{display:grid;gap:4px}
aside #nav-utilities .backup,aside #nav-utilities #team-manage{display:block;padding:10px 12px;margin:0;background:transparent;color:#b4c9d8;font-size:12px;line-height:1.5;font-weight:500;text-align:left;border-radius:8px;text-decoration:none}
aside #nav-utilities :is(.backup,#team-manage):hover{background:#ffffff0a;color:#fff}
aside .local{display:none}
aside #logout{margin:0;padding:9px 12px;min-height:36px;text-align:left;background:transparent;color:#8da7b9;font-size:12px}
aside :is(button,summary,a):focus-visible{outline:2px solid #64dce0;outline-offset:2px}
main{margin-left:260px;padding:32px 34px;max-width:1650px}
.workspace-header{margin-bottom:19px;padding-bottom:0;gap:16px}
.workspace-header h1{font-size:29px;font-weight:700;letter-spacing:-.8px;line-height:1.2;margin:7px 0 0}
.workspace-header .eyebrow{font-size:11px;letter-spacing:1.5px;color:#6b8697;margin:0}
.workspace-header>#new{border-radius:11px;box-shadow:0 4px 12px #066b7920}
#workspace-navigation{display:flex;gap:4px;overflow-x:auto;white-space:nowrap;padding:5px;margin:0 0 24px;border:1px solid #dce6ed;background:#eaf0f4;border-radius:13px;scrollbar-width:thin}
#workspace-navigation button{background:transparent;color:#4f6472;font-size:12px;font-weight:600;padding:10px 13px;border-radius:9px;flex-shrink:0;min-height:39px}
#workspace-navigation button[aria-current=page]{background:#fff;color:#087786;box-shadow:0 2px 7px #1731490d}
#workspace-navigation button:focus-visible{outline:2px solid #066b79;outline-offset:-2px}
#content>.panel{border-radius:17px;border-color:#dce6ed;box-shadow:0 3px 12px #18384c04}
#content>h2{font-size:20px;letter-spacing:-.4px;margin:28px 0 16px}
html[data-theme=dark] body:not(.login-page){background:#0d1722}
html[data-theme=dark] #workspace-navigation{background:#142433;border-color:#293c4b}
html[data-theme=dark] #workspace-navigation button{color:#96adbd}
html[data-theme=dark] #workspace-navigation button[aria-current=page]{background:#234253;color:#a1eef0;box-shadow:none}
html[data-theme=dark] .workspace-header .eyebrow{color:#7193a8}
html[data-theme=dark] #content>.panel{border-color:#2c4151;box-shadow:none}
@media(max-width:900px){
 aside{width:auto;position:relative;padding:13px 16px;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;overflow:visible}
 aside .brand.brand-home{width:136px;grid-column:1;grid-row:1;justify-self:start}
 aside .brand-home img{width:124px}
 aside .brand.brand-home small{font-size:6.5px;letter-spacing:1px}
 aside #theme-toggle{position:static;grid-column:2;grid-row:1;width:42px;height:42px;margin:0}
 aside #mobile-menu{grid-column:3;grid-row:1;width:42px;height:42px;min-height:42px;border:1px solid #48627755;border-radius:12px;background:#ffffff08}
 aside #main-navigation,aside #nav-settings,aside .local,aside #logout{display:none}
 aside.menu-open #main-navigation{display:block;grid-column:1/-1;margin:12px 0 0;max-height:57dvh;overflow-y:auto;padding:0 2px 4px}
 aside.menu-open #nav-settings{display:block;grid-column:1/-1;margin:0;padding-top:8px}
 aside.menu-open #logout{display:block;grid-column:1/-1;margin:0}
 aside .nav-link,aside .nav-group>summary{min-height:44px;font-size:14px}
 aside .nav-children .nav-link,aside #nav-utilities :is(.backup,#team-manage){min-height:42px;font-size:13px}
 aside .nav-primary{gap:3px}
 .nav-secondary-caption{margin-top:15px}
 main{margin-left:0;padding:22px 16px;min-width:0}
 .workspace-header{margin-bottom:15px;flex-wrap:nowrap}
 .workspace-header h1{font-size:24px;margin-top:0;overflow-wrap:anywhere}
 .workspace-header .eyebrow{display:none}
 #workspace-navigation{margin-bottom:18px;border-radius:11px;padding:4px}
 #workspace-navigation button{min-height:42px;padding:10px 12px;font-size:12px}
 #content>.panel{border-radius:14px}
}
@media(prefers-reduced-motion:reduce){aside .nav-link,aside summary,.nav-chevron{transition:none}}

.education-dialog{width:min(760px,94vw);max-height:90dvh;overflow:auto}.education-dialog .modalhead{position:sticky;top:0;background:white;z-index:2}.education-dialog label{margin:12px 0}.education-dialog .modalhead button{min-width:44px;min-height:44px}.education-dialog [data-error]{color:#c04444}.income-link-box{border:1px solid #7797a644;border-radius:13px;padding:14px;margin-bottom:14px}.income-link-box h3{font-size:15px;margin:0 0 12px}.income-link-box label{margin:12px 0}.income-kind-options{display:flex;flex-wrap:wrap;gap:7px}.income-kind-options button{padding:10px 12px;min-height:42px;background:#e7eff4;color:#345568}.income-kind-options button[aria-pressed=true]{background:#066b79;color:white}.income-link-box [data-link-hint]{font-size:12px}.education-dialog details{margin-top:14px}html[data-theme=dark] .education-dialog .modalhead{background:#162333}html[data-theme=dark] .income-kind-options button{background:#263b50;color:#d7eaf7}html[data-theme=dark] .income-kind-options button[aria-pressed=true]{background:#066b79;color:white}

.team-access{border:1px solid #8885;border-radius:12px;padding:12px 14px;margin:10px 0}.team-perms{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:4px 14px;margin:6px 0 10px}.team-perms label{margin:0}

#install-app{margin-top:8px;width:100%}@media(max-width:900px){#install-app{display:none}}

/* Working without internet: status bar under the header and the list of records waiting to upload. */
#offline-status{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin:0 0 16px;padding:10px 14px;border-radius:10px;background:#fff4d6;color:#6b4a00;border:1px solid #f0d58c}
#offline-status.pending{background:#e2f2f8;color:#0a5f80;border-color:#a9d6e8}
#offline-status.error{background:#fde8e6;color:#8a2a22;border-color:#f2b8b1}
#offline-status button,#offline-status .buttonlink{min-height:40px}
.offline-pending .section-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}
.offline-item{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px 0;border-top:1px solid #dae5ee}
.offline-item>div:first-child{display:grid;gap:2px;min-width:0}
.offline-item.error{border-left:4px solid #d9534f;padding-left:10px}
html[data-theme=dark] #offline-status{background:#3a2d12;color:#f0c46a;border-color:#6b5420}
html[data-theme=dark] #offline-status.pending{background:#16323f;color:#8fd8f0;border-color:#2a5466}
html[data-theme=dark] #offline-status.error{background:#4a2326;color:#ffb4b4;border-color:#7a3a3f}
html[data-theme=dark] .offline-item{border-color:#35485c}
/* Accessibility: touch targets of at least 44x44 px on phones (WCAG 2.5.5). */
@media (max-width:900px){#workspace-navigation button,.period-tabs button,.work-status-row,.attention-row,details>summary,.nav-link,#theme-toggle,#install-app,[data-offline-sync]{min-height:44px}.work-status-row{padding-block:6px}details>summary{display:flex;align-items:center}}@media (max-width:900px){#mobile-menu,aside #theme-toggle{min-width:44px;min-height:44px}.actions a[href*="/receipt/"]{display:inline-flex;align-items:center;min-height:44px;padding:0 10px}}

/* Phone header: a slimmer bar so the page content starts higher; the logo alone identifies the app. */
@media (max-width:900px){aside{padding-top:8px;padding-bottom:8px}aside .brand.brand-home{width:auto}aside .brand-home img{width:100px}aside .brand.brand-home small{display:none}aside #mobile-menu,aside #theme-toggle{width:44px;height:44px;min-width:44px;min-height:44px}}
/* Page header: the title wraps, the action button never does. */
main>header{gap:12px}main>header>div{min-width:0}#new{white-space:nowrap;flex-shrink:0}
/* Quote actions: two visible, the rest folded, "Anular" set apart. */
.more-actions{margin-top:8px}.more-actions>summary{cursor:pointer;font-weight:600;color:#066b79;list-style-position:inside;padding:6px 0}
.more-actions[open]>summary{margin-bottom:6px}.more-actions .danger-zone{margin-top:10px;padding-top:10px;border-top:1px dashed #d6e2e9}
html[data-theme=dark] .more-actions>summary{color:#6cdce2}html[data-theme=dark] .more-actions .danger-zone{border-color:#35485c}.more-actions .danger-zone button.danger{background:#fbeaea;color:#9b2f2b;border:1px solid #efc4c0}html[data-theme=dark] .more-actions .danger-zone button.danger{background:#4a2326;color:#ffc9c4;border-color:#7a3a3f}
