/* Shared visual language. Page-specific styles retain their functional layouts. */
:root{color-scheme:dark;--bg:#0c111b;--panel:#121d2e;--panel2:#152238;--card:#121d2e;--field:#0d1727;--input:#0d1727;--line:#283a53;--border:#283a53;--txt:#edf3fc;--text:#edf3fc;--muted:#aebcd0;--muted2:#aebcd0;--accent:#6aa6ff;--ok:#62dfa9;--danger:#ff8b94;--btn:#1c2c43;--btnb:#344b69}
*{box-sizing:border-box}[hidden]{display:none!important}html{scroll-padding-top:100px}body{margin:0!important;padding-bottom:calc(28px + env(safe-area-inset-bottom))!important;background:var(--bg)!important;color:var(--text)!important;font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,Arial!important}
a{color:#a7ccff;text-underline-offset:3px}a:hover{color:#d7e8ff}h1,h2,h3{color:var(--text);line-height:1.25}h2{font-size:18px}h3{font-size:15px}
.wrap{max-width:1100px;margin-inline:auto;padding:18px}.small,.sub,.muted{color:var(--muted)!important}.small,.sub{font-size:13px}
.card,main>section:not(.menu-group){background:var(--panel)!important;border:1px solid var(--line)!important;border-radius:16px!important;box-shadow:0 8px 24px #00000018!important}.kpi{background:var(--field)!important;border-color:var(--line)!important;border-radius:12px!important}.hd{background:var(--panel2)!important;border-color:var(--line)!important}
input:not([type=checkbox]):not([type=radio]),select,textarea{font-family:inherit!important;font-size:16px!important;color:var(--text)!important;background:var(--field)!important;border:1px solid var(--line)!important;border-radius:11px!important;min-height:44px;padding:10px 12px!important;max-width:100%}input:disabled{opacity:.7}input[type=checkbox],input[type=radio]{accent-color:#6aa6ff}input[type=file]{width:100%}
button,.btn,.btn2{font-family:inherit!important;font-size:14px!important;font-weight:700!important;min-height:44px;border-radius:11px!important;border:1px solid var(--btnb)!important;background:var(--btn)!important;color:var(--text)!important;padding:10px 14px!important;cursor:pointer}button.primary,.btn.primary,#dmSave,#save.primary{background:#286cda!important;border-color:#4d92fa!important;color:white!important}.btn.ok{background:#174637!important;border-color:#31745b!important}.btn.danger{background:#50242c!important;border-color:#91505a!important}button:disabled{opacity:.45;cursor:not-allowed}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid #91c0ff!important;outline-offset:3px}label{color:var(--muted);font-size:13px}th,td{border-color:var(--line)!important}th{color:var(--muted)}.notice,.note{background:#14243b!important;border-color:#3a577a!important;color:#d7e5f7!important;border-radius:11px}
body>header.app-header{position:sticky!important;top:0;z-index:50;display:block!important;padding:0!important;background:#101b2dee!important;border-bottom:1px solid var(--line)!important;backdrop-filter:blur(14px)}
.app-header .app-top{max-width:1100px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px}.app-identity{min-width:0;flex:1}.app-brand{display:block;color:#91baff;font-size:10px;font-weight:800;letter-spacing:1.7px;text-transform:uppercase;margin-bottom:3px}.app-header h1{font-size:19px!important;font-weight:750!important;text-align:left!important;margin:0!important;flex:unset!important}.app-header .app-subtitle{font-size:12px;color:var(--muted);margin-top:3px}.app-menu-link{display:inline-flex!important;align-items:center;justify-content:center;gap:8px;min-height:44px;flex:none;white-space:nowrap;font-size:14px!important;font-weight:750!important;padding:9px 14px!important;color:var(--text)!important;border:1px solid var(--btnb)!important;border-radius:11px!important;background:var(--btn)!important;text-decoration:none!important}.app-menu-link svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2}.app-toolbar{max-width:1100px;margin:0 auto;padding:0 18px 12px;display:flex;flex-wrap:wrap;align-items:center;gap:10px}.app-toolbar:empty{display:none}.app-toolbar label{margin:0}.app-toolbar input{width:170px}.app-toolbar .hint{font-size:12px;color:var(--muted)}.app-month-nav{display:flex;gap:8px;flex:none}.app-month-nav button{width:44px;padding:0!important}.app-header:has(.app-month-nav) .app-top{gap:10px}
#calendarWrap{max-width:1100px;padding:16px 18px 24px}.cell,.dayBtn{border-radius:12px;background:var(--panel);border-color:var(--line)}.dowCell{background:var(--panel2);color:var(--muted);border-color:var(--line)}#dayModal .box{background:var(--panel);border-color:var(--line);border-radius:18px}#dayModal .head,#dayModal .foot{border-color:var(--line)}.bottomNav{display:none!important}
.menu-intro{padding:4px 0 10px}.menu-intro p{margin-top:6px;color:var(--muted)}.menu-group{margin:18px 0 28px}.menu-group h2{font-size:14px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin-bottom:12px}.menu-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.menu-card{display:flex;gap:14px;align-items:center;min-height:100px;padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--panel);text-decoration:none;color:var(--text)}.menu-card:hover{background:#182942;border-color:#527da9;color:var(--text)}.menu-icon{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px;background:#203756;color:#a7ccff;font-size:13px;font-weight:800;flex:none}.menu-card strong{display:block;font-size:16px}.menu-card small{display:block;color:var(--muted);font-size:13px;margin-top:4px}.menu-arrow{margin-left:auto;color:#91baff}.menu-footer{border-top:1px solid var(--line);padding:20px 0}.menu-footer p{font-size:13px;color:var(--muted)}
@media(max-width:600px){.wrap{padding:14px}.app-header .app-top{padding:12px 14px}.app-header h1{font-size:17px!important}.app-brand{font-size:9px}.app-menu-link{padding:9px 11px!important}.app-menu-link svg{width:16px}.app-toolbar{padding:0 14px 12px}.app-toolbar .hint{flex-basis:100%}#calendarWrap{padding:12px 8px 20px}.menu-grid{grid-template-columns:1fr}.menu-card{min-height:90px;padding:15px}.app-header:has(.app-month-nav) .app-identity{order:0}.app-month-nav{order:1}.app-header:has(.app-month-nav) .app-menu-link{order:2}.app-month-nav{gap:5px}.app-month-nav button{width:36px;min-height:40px}.app-header:has(.app-month-nav) .app-top{gap:7px}.app-header:has(.app-month-nav) h1{font-size:15px!important}.app-header:has(.app-month-nav) .app-brand{letter-spacing:1px}}
/* Calendar day buttons keep their status colours and compact seven-column layout. */
button.dayBtn{background:var(--panel)!important;padding:8px 6px!important;font-size:12px!important;min-height:80px;border-radius:12px!important}
button.dayBtn.hasRientro{background:#222044!important}button.dayBtn.hasAssForf{background:#38291e!important}button.dayBtn.holiday{background:#172a4c!important}button.dayBtn.sel{border:2px solid #6aa6ff!important}
.travel-entry{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:14px;margin:12px 0;border:1px solid var(--line);border-radius:12px;background:var(--field)}.travel-check{display:flex!important;align-items:center;gap:10px;font-size:13px;line-height:1.5;margin:14px 0!important}.travel-check input{width:20px!important;height:20px;flex:none}.travel-entry .travel-check{grid-column:1/-1;margin:0!important}.travel-entry button{justify-self:start}.travel-entry input:not([type=checkbox]){width:100%;min-width:0}@media(max-width:420px){.travel-entry{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
