:root{--brand-primary: #12283d;--brand-primary-contrast: #ffffff;--brand-accent: #1d5fd1;--brand-background: #f6f7f9;--brand-surface: #ffffff;--brand-text: #16212c;--brand-text-muted: #59697a;--brand-border: #e0e4ea;--brand-surface-alt: color-mix(in srgb, var(--brand-text) 4%, var(--brand-surface));--brand-accent-soft: color-mix(in srgb, var(--brand-accent) 12%, var(--brand-surface));--status-ok: #1a7f37;--status-warn: #9a6700;--status-danger: #b42318;--status-draft: var(--brand-text-muted);--status-ok-bg: color-mix(in srgb, var(--status-ok) 11%, var(--brand-surface));--status-warn-bg: color-mix(in srgb, var(--status-warn) 11%, var(--brand-surface));--status-danger-bg: color-mix(in srgb, var(--status-danger) 10%, var(--brand-surface));--type-ho: #0e7490;--type-sc: #92400e;--type-vacation: #4f46e5;--type-health: #a21caf;--type-leave: #475569;--type-fill-contrast: #ffffff;--role-manager: var(--brand-primary);--role-reviewer: #6d5a7d;--brand-font: "IBM Plex Sans", system-ui, -apple-system, sans-serif;--brand-font-display: "Source Serif 4", Georgia, serif;--brand-font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, monospace;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-pill: 999px;--shadow-modal: 0 8px 30px -10px rgba(0, 0, 0, .35);--shadow-toast: 0 8px 24px -12px rgba(0, 0, 0, .35);color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){color-scheme:dark;--brand-primary: #0d1f33;--brand-accent: #5b8def;--brand-background: #10161d;--brand-surface: #171f29;--brand-text: #e6ebf1;--brand-text-muted: #93a1b0;--brand-border: #2a3441;--type-ho: #4cc3e0;--type-sc: #e3a463;--type-vacation: #a5a8f5;--type-health: #e07be9;--type-leave: #b0bccb;--type-fill-contrast: #0c1219;--role-manager: #9fb3c8;--role-reviewer: #cbb8dc;--status-ok: #3fb950;--status-warn: #d29922;--status-danger: #f47067}}:root[data-theme=dark]{color-scheme:dark;--brand-primary: #0d1f33;--brand-accent: #5b8def;--brand-background: #10161d;--brand-surface: #171f29;--brand-text: #e6ebf1;--brand-text-muted: #93a1b0;--brand-border: #2a3441;--type-ho: #4cc3e0;--type-sc: #e3a463;--type-vacation: #a5a8f5;--type-health: #e07be9;--type-leave: #b0bccb;--type-fill-contrast: #0c1219;--role-manager: #9fb3c8;--role-reviewer: #cbb8dc;--status-ok: #3fb950;--status-warn: #d29922;--status-danger: #f47067}*,*:before,*:after{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--brand-background);color:var(--brand-text);font-family:var(--brand-font);font-size:15px;line-height:1.45}body.drawer-open-lock{overflow:hidden}h1,h2,h3,h4{font-family:var(--brand-font-display);text-wrap:balance;margin:0}:focus-visible{outline:2px solid var(--brand-accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition:none!important;animation:none!important}}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.app-shell{display:grid;grid-template-columns:240px 1fr;height:100vh}.sidebar{background:var(--brand-primary);color:color-mix(in srgb,var(--brand-primary-contrast) 75%,var(--brand-primary));padding:1.1rem .75rem;display:flex;flex-direction:column;gap:1.2rem;overflow-y:auto}.brand{display:flex;align-items:center;gap:.6rem;padding:0 .5rem;color:var(--brand-primary-contrast)}.brand-mark{width:30px;height:30px;flex:none;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--brand-primary-contrast) 14%,var(--brand-primary));display:grid;place-items:center}.brand-name{font-family:var(--brand-font-display);font-weight:700;font-size:1.05rem}.brand-sub{font-size:.72rem;color:color-mix(in srgb,var(--brand-primary-contrast) 60%,var(--brand-primary))}.nav-group{display:flex;flex-direction:column;gap:2px}.nav-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;color:color-mix(in srgb,var(--brand-primary-contrast) 60%,var(--brand-primary));padding:0 .6rem .3rem}.nav-item{display:flex;align-items:center;gap:.6rem;color:inherit;font-size:.88rem;text-decoration:none;padding:.45rem .6rem;border-radius:var(--radius-sm)}.nav-item svg{width:15px;height:15px;flex:none;stroke:currentColor;fill:none;stroke-width:1.8}.nav-item:hover{background:color-mix(in srgb,var(--brand-primary-contrast) 8%,var(--brand-primary))}.nav-item.active{background:color-mix(in srgb,var(--brand-primary-contrast) 14%,var(--brand-primary));color:var(--brand-primary-contrast);font-weight:600}.main{display:flex;flex-direction:column;min-width:0;height:100vh}.topbar{height:52px;flex:none;background:var(--brand-surface);border-bottom:1px solid var(--brand-border);display:flex;align-items:center;gap:.75rem;padding:0 1.25rem}.crumb{font-size:.82rem;color:var(--brand-text-muted);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crumb strong{color:var(--brand-text);font-weight:600}.icon-btn{border:1px solid var(--brand-border);background:var(--brand-surface);color:var(--brand-text);width:34px;height:34px;flex:none;border-radius:var(--radius-pill);display:grid;place-items:center;cursor:pointer}.icon-btn:hover{background:var(--brand-surface-alt)}.icon-btn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8}.shell-menu-btn{display:none}.canvas{flex:1;overflow:auto;position:relative;padding:1.6rem 2rem 3.5rem}.backdrop{display:none}@media (min-width: 721px){.app-shell.collapsed{grid-template-columns:64px 1fr}.app-shell.collapsed .sidebar{align-items:center;padding-inline:.5rem}.app-shell.collapsed .brand{justify-content:center;padding:0}.app-shell.collapsed .brand-text,.app-shell.collapsed .nav-label,.app-shell.collapsed .nav-text{display:none}.app-shell.collapsed .nav-item{justify-content:center}}@media (max-width: 720px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:260px;z-index:30;transform:translate(-100%);transition:transform .28s ease}.app-shell.drawer-open .sidebar{transform:none}.app-shell.drawer-open .backdrop{display:block;position:fixed;inset:0;z-index:20;background:#060a1073}.shell-menu-btn{display:grid}.shell-collapse-btn{display:none}.topbar{padding:0 1rem}.canvas{padding:1.1rem 1rem 3rem}}.page-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.3rem}.page-header h1{font-size:1.5rem}.subtitle{font-size:.85rem;color:var(--brand-text-muted);margin-top:.2rem}.header-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.55rem}.header-action{display:flex;flex-direction:column;align-items:flex-end;gap:.3rem}.hint{font-size:.72rem;color:var(--brand-text-muted)}.button,.button-secondary,.button-danger{font:inherit;font-size:.88rem;font-weight:600;cursor:pointer;border-radius:var(--radius-pill);padding:.5rem 1.1rem;border:1px solid transparent;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;white-space:nowrap}.button{background:var(--brand-accent);color:var(--brand-primary-contrast)}.button:hover{background:color-mix(in srgb,var(--brand-accent) 88%,#000)}.button:active{background:color-mix(in srgb,var(--brand-accent) 76%,#000)}.button-secondary{background:color-mix(in srgb,var(--brand-text) 5%,var(--brand-surface));border-color:var(--brand-border);color:var(--brand-text)}.button-secondary:hover{background:color-mix(in srgb,var(--brand-text) 9%,var(--brand-surface));border-color:color-mix(in srgb,var(--brand-text) 22%,var(--brand-surface))}.button-secondary:active{background:color-mix(in srgb,var(--brand-text) 13%,var(--brand-surface))}.button-danger{background:transparent;color:var(--status-danger);border-color:var(--status-danger)}.button-danger:hover{background:var(--status-danger-bg)}.button-sm{padding:.3rem .8rem;font-size:.8rem}.button-back{font:inherit;font-size:.85rem;display:inline-flex;align-items:center;gap:.3rem;border:0;background:none;color:var(--brand-text-muted);cursor:pointer;padding:.3rem .6rem .3rem .35rem;border-radius:var(--radius-pill)}.button-back svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2}.button-back:hover{background:var(--brand-surface-alt);color:var(--brand-text)}.action-row{display:flex;flex-wrap:wrap;gap:.5rem}.button-quiet{font:inherit;font-size:.82rem;border:0;background:none;color:var(--brand-accent);cursor:pointer;padding:.3rem .6rem;border-radius:var(--radius-pill)}.button-quiet:hover{background:var(--brand-accent-soft)}button:disabled{opacity:.5;cursor:not-allowed}a{color:var(--brand-accent)}a:hover{text-decoration:none}.link-button{font:inherit;border:0;background:none;padding:0;color:var(--brand-accent);text-decoration:underline;cursor:pointer;font-weight:600}.link-button:hover{text-decoration:none}.error,.save-message,.callout{border-radius:var(--radius-sm);padding:.6rem .85rem;font-size:.85rem}.error{background:var(--status-danger-bg);color:var(--status-danger)}.save-message{background:var(--status-ok-bg);color:var(--status-ok)}.callout{background:var(--brand-accent-soft);border:1px solid var(--brand-accent)}.callout.returned{background:var(--status-warn-bg);border-color:color-mix(in srgb,var(--status-warn) 45%,var(--brand-surface))}.empty-message{color:var(--brand-text-muted);text-align:center;padding:1.5rem;font-size:.88rem}.section-gap{margin-bottom:1rem}.layout-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:1rem;margin-bottom:1rem;align-items:start}@media (max-width: 1100px){.layout-split{grid-template-columns:minmax(0,1fr)}}.side-stack{display:flex;flex-direction:column;gap:1rem;min-width:0}.panel{background:var(--brand-surface);border:1px solid var(--brand-border);border-radius:var(--radius-md);min-width:0}.panel-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid var(--brand-border)}.panel-head h2{font-size:.95rem}.panel-body{padding:1rem}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}@media (max-width: 520px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.stats-auto{grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}.stat{background:var(--brand-surface);border:1px solid var(--brand-border);border-radius:var(--radius-md);padding:.8rem .9rem}.stat.ok .stat-value{color:var(--status-ok)}.stat.warn .stat-value{color:var(--status-warn)}.stat.accent .stat-value{color:var(--brand-accent)}.stat.draft .stat-value{color:var(--status-draft)}.stat-value{font-family:var(--brand-font-mono);font-size:1.6rem;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.15}.stat-sub{font-family:var(--brand-font-mono);font-size:.78rem;color:var(--brand-text-muted)}.stat-label{font-size:.78rem;color:var(--brand-text-muted);margin-top:.15rem}.today-date{font-size:.85rem;color:var(--brand-text-muted)}.clock{font-family:var(--brand-font-mono);font-size:2.6rem;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.01em;margin:.2rem 0 .1rem}.clock-sub{font-size:.85rem;color:var(--brand-text-muted);margin-bottom:1rem}.punch-actions{display:flex;flex-direction:column;gap:.4rem}.punch-btn{width:100%;font-size:1.05rem;padding:.85rem 1rem}.timeline{list-style:none;margin:1rem 0 0;padding:.8rem 0 0;border-top:1px solid var(--brand-border);display:flex;flex-direction:column;gap:.4rem;font-size:.85rem}.timeline li{display:flex;justify-content:space-between;gap:.5rem}.timeline .t{font-family:var(--brand-font-mono);font-variant-numeric:tabular-nums;font-weight:600}.timeline .muted{color:var(--brand-text-muted)}.table-wrap{overflow-x:auto;position:relative}table{width:100%;border-collapse:collapse;table-layout:fixed}th{font-size:.72rem;text-transform:uppercase;letter-spacing:.03em;color:var(--brand-text-muted);font-weight:600;text-align:left;padding:.55rem .6rem;border-bottom:1px solid var(--brand-border);vertical-align:bottom}td{font-size:.88rem;padding:.45rem .6rem;border-bottom:1px solid var(--brand-border);vertical-align:middle}tbody tr:last-child td,tbody tr:last-child th{border-bottom:0}th.num{text-align:right}td.num{text-align:right;font-family:var(--brand-font-mono);font-variant-numeric:tabular-nums}td.time{font-family:var(--brand-font-mono);font-variant-numeric:tabular-nums}td.actions,th.actions{text-align:right;white-space:nowrap}.slug{font-family:var(--brand-font-mono);font-size:.78rem;color:var(--brand-text-muted)}th.center,td.center{text-align:center}th.row-head{font-size:.88rem;text-transform:none;letter-spacing:0;color:var(--brand-text);font-weight:600;vertical-align:middle;border-bottom:1px solid var(--brand-border)}.person{display:flex;flex-direction:column;min-width:0}.person-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.person-meta{font-size:.75rem;color:var(--brand-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip-row{display:flex;flex-wrap:wrap;gap:.3rem}.payroll{min-width:1080px}.payroll .col-person{width:210px}.payroll .col-company{width:170px}.payroll .col-mode{width:190px}.payroll .col-num{width:100px}.payroll .col-check{width:70px}.payroll .col-status{width:160px}.payroll .col-actions{width:170px}.chip.pending{color:var(--role-reviewer);background:color-mix(in srgb,var(--role-reviewer) 14%,var(--brand-surface))}.requests{min-width:1220px}.requests .col-person{width:210px}.requests .col-period{width:170px}.requests .col-code,.requests .col-num{width:90px}.requests .col-status{width:230px}.requests .col-actions{width:200px}.requests.mine{min-width:960px}.requests.mine .col-actions{width:150px}.requests .reason{color:var(--brand-text);font-size:inherit}.requests td .note{margin-top:.2rem}.requests tr.has-detail td{border-bottom:0}.requests tr.detail td{background:var(--brand-surface-alt)}.requests td.actions .button-sm+.button-sm{margin-left:.35rem}.month-switch{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.month-switch input[type=month]{margin-left:.25rem}.day-editor .field-time{flex:0 1 9rem}.day-editor .field-wide{flex:2 1 16rem}.day-editor .form-actions{flex-basis:100%}.team-sheets{min-width:1040px}.team-sheets .col-person{width:220px}.team-sheets .col-mode{width:190px}.team-sheets .col-num{width:96px}.team-sheets .col-check{width:70px}.team-sheets .col-status{width:150px}.team-sheets .col-actions{width:210px}.team-sheets tr.has-detail td{border-bottom:0}.team-sheets tr.detail td{background:var(--brand-surface-alt)}.team-sheets td.actions .button-sm+.button-sm{margin-left:.35rem}td a.person-name{color:var(--brand-text);text-decoration:underline;text-decoration-color:var(--brand-border);text-underline-offset:3px}td a.person-name:hover{color:var(--brand-accent);text-decoration-color:currentColor}.history{list-style:none;margin:0;padding:.8rem 1rem;display:flex;flex-direction:column;gap:.6rem}.history li{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem .6rem;font-size:.85rem}.history-who{color:var(--brand-text-muted)}.history-comment{flex-basis:100%;padding-left:.2rem}.editor-layout{display:grid;grid-template-columns:minmax(240px,320px) minmax(0,1fr);gap:1rem;align-items:start}@media (max-width: 1000px){.editor-layout{grid-template-columns:minmax(0,1fr)}}.tree{list-style:none;margin:0;padding:.4rem;display:flex;flex-direction:column;gap:2px}.tree-nested{padding:.2rem 0 .4rem 1rem;margin-left:.6rem;border-left:1px solid var(--brand-border)}.tree-item{font:inherit;width:100%;text-align:left;display:flex;flex-direction:column;gap:.1rem;border:0;background:none;color:var(--brand-text);border-radius:var(--radius-sm);padding:.45rem .6rem;cursor:pointer}.tree-item:hover{background:var(--brand-surface-alt)}.tree-item.selected{background:var(--brand-surface-alt);box-shadow:inset 3px 0 0 var(--brand-accent)}.tree-name{font-size:.88rem;font-weight:600}.tree-meta{font-size:.72rem;color:var(--brand-text-muted)}.tree-add{margin-top:.2rem}.panel-foot{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;padding:.75rem 1rem;border-top:1px solid var(--brand-border)}.danger-zone{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}.confirm-text{font-size:.85rem;font-weight:600}.person-chips{list-style:none;margin:0 0 .9rem;padding:0;display:flex;flex-wrap:wrap;gap:.4rem}.person-chip{font-size:.78rem;padding-right:.25rem}.chip-remove{font:inherit;font-size:.95rem;line-height:1;border:0;background:none;color:inherit;cursor:pointer;border-radius:var(--radius-pill);width:1.3rem;height:1.3rem}.chip-remove:hover{background:color-mix(in srgb,var(--hue) 18%,var(--brand-surface))}.add-row select{min-width:0;max-width:100%;flex:1 1 260px}.members{min-width:760px}.members .col-person{width:280px}.members .col-roles{width:220px}.members .col-mode{width:190px}.members td.actions select{max-width:200px}.users{min-width:960px}.users .col-person{width:280px}.users .col-company{width:190px}.users .col-roles{width:260px}.users .col-mode{width:200px}.users .sees{color:var(--brand-text);white-space:normal}.matrix{min-width:520px}.matrix input[type=checkbox]{width:18px;height:18px;accent-color:var(--brand-accent);cursor:pointer}.sheet{min-width:1000px}.sheet .col-date{width:128px}.sheet .col-time{width:72px}.sheet .col-break{width:88px}.sheet .col-hours{width:108px}.sheet .col-code{width:132px}.sheet .col-check{width:200px}.sheet tr.offday td{background:var(--brand-surface-alt)}.sheet tr.future td{color:var(--brand-text-muted)}.sheet tr.today td:first-child{box-shadow:inset 3px 0 0 var(--brand-accent)}.sheet tr.clickable{cursor:pointer}.sheet tr.clickable:hover td{background:var(--brand-surface-alt)}.sheet tr.selected td{background:var(--brand-accent-soft)}.sheet tr.selected td:first-child{box-shadow:inset 3px 0 0 var(--brand-accent)}.sheet tr.foot td{font-weight:600;background:var(--brand-surface-alt);border-top:1px solid var(--brand-border)}.date-cell{display:flex;align-items:baseline;gap:.45rem;white-space:nowrap}.date-cell .d{font-family:var(--brand-font-mono);font-variant-numeric:tabular-nums;font-weight:600;min-width:3.3em}.date-cell .wd{color:var(--brand-text-muted);font-size:.8rem}.holiday-name,.note{display:block;color:var(--brand-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.holiday-name{font-size:.7rem}.note{font-size:.82rem}.is-default{color:var(--brand-text-muted)}.warn-count{font-family:var(--brand-font-mono);font-weight:700}.warn-count.has{color:var(--status-warn)}.warn-count.zero{color:var(--status-ok)}.chip{display:inline-flex;align-items:center;gap:.3rem;font-family:var(--brand-font-mono);font-size:.68rem;font-weight:600;line-height:1;border-radius:var(--radius-pill);padding:.28rem .55rem;border:1px solid transparent;white-space:nowrap;color:var(--status-draft);background:color-mix(in srgb,var(--status-draft) 11%,var(--brand-surface))}.chip svg{width:11px;height:11px;stroke:currentColor;fill:none;stroke-width:2}.chip.ok{color:var(--status-ok);background:var(--status-ok-bg)}.chip.warn{color:var(--status-warn);background:var(--status-warn-bg)}.chip.danger{color:var(--status-danger);background:var(--status-danger-bg)}.chip.attr{color:var(--brand-text);background:var(--brand-surface-alt);border-color:var(--brand-border);font-family:var(--brand-font);font-size:.72rem;max-width:100%;white-space:normal;line-height:1.25}.code-chip{--hue: var(--brand-text-muted);color:var(--hue);background:color-mix(in srgb,var(--hue) 12%,var(--brand-surface))}.code-chip[data-group=vacation]{--hue: var(--type-vacation)}.code-chip[data-group=health]{--hue: var(--type-health)}.code-chip[data-group=leave]{--hue: var(--type-leave)}.code-chip[data-group=ho]{--hue: var(--type-ho)}.code-chip[data-group=sc]{--hue: var(--type-sc)}.chip.role{--hue: var(--status-draft);color:var(--hue);background:color-mix(in srgb,var(--hue) 11%,var(--brand-surface));font-family:var(--brand-font);font-size:.7rem}.chip.role[data-role=MANAGER]{--hue: var(--role-reviewer)}.chip.role[data-role=ACCOUNTANT]{--hue: var(--role-manager)}.chip.role[data-role=ADMIN]{color:var(--brand-text);background:var(--brand-surface-alt);border-color:var(--brand-border)}.sheet-status{--hue: var(--role-reviewer)}.sheet-status[data-status=DRAFT]{color:var(--hue);background:color-mix(in srgb,var(--hue) 7%,var(--brand-surface));border-color:color-mix(in srgb,var(--hue) 30%,var(--brand-surface))}.sheet-status[data-status=SUBMITTED]{color:var(--type-fill-contrast);background:var(--hue)}.sheet-status[data-status=APPROVED]{color:color-mix(in srgb,var(--hue) 88%,var(--brand-text));background:color-mix(in srgb,var(--hue) 20%,var(--brand-surface))}.sheet-status[data-status=ACCEPTED]{color:color-mix(in srgb,var(--hue) 45%,var(--brand-text-muted));background:color-mix(in srgb,var(--hue) 6%,var(--brand-surface))}.check{display:flex;align-items:center;gap:.4rem;font-size:.8rem;white-space:nowrap;overflow:hidden}.check .msg{color:var(--status-danger);overflow:hidden;text-overflow:ellipsis}.check .msg.muted{color:var(--brand-text-muted)}.glyph{font-weight:700;width:1em;text-align:center;flex:none}.glyph.ok{color:var(--status-ok)}.glyph.bad{color:var(--status-danger)}.glyph.none{color:var(--brand-text-muted)}.form{display:flex;flex-direction:column;gap:.9rem}.form-inline{flex-direction:row;flex-wrap:wrap;align-items:flex-end;gap:.6rem}.field{display:flex;flex-direction:column;gap:.3rem;min-width:0}.field label{font-size:.85rem;font-weight:600}.form-inline .field{flex:1 1 240px}.control{font:inherit;font-size:.9rem;border:1px solid var(--brand-border);border-radius:var(--radius-sm);background:var(--brand-surface);color:var(--brand-text);padding:.45rem .6rem;width:100%;max-width:28rem}.control-short{max-width:12rem}.form-actions{display:flex;justify-content:flex-end;gap:.5rem}.toolbar{display:flex;flex-wrap:wrap;gap:.5rem}.filter-search{min-width:220px}@media (max-width: 520px){.filter-search{min-width:0;flex:1}}.dev-user{max-width:280px;min-width:0}@media (max-width: 720px){.dev-user{max-width:140px}}.filter{font:inherit;font-size:.85rem;border:1px solid var(--brand-border);border-radius:var(--radius-sm);background:var(--brand-surface);color:var(--brand-text);padding:.35rem .55rem}.login{min-height:100vh;display:grid;place-items:center;padding:1rem;background:var(--brand-background)}.login-card{width:min(24rem,100%)}.login-body{display:flex;flex-direction:column;gap:.9rem}.user-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:.8rem 1rem;align-items:start}.user-form .error,.user-form .save-message{grid-column:1/-1;margin:0}.user-form-actions{grid-column:1/-1;display:flex;gap:.6rem}.account-card{max-width:34rem}.pw-inline{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}.pw-inline .control{width:11rem}
