@import "https://fonts.googleapis.com/css2?family=Onest:wght@400;500;600;700;800&display=swap";:root{--bg:#f5f5f5;--surface:#fff;--primary:#165a50;--primary-dark:#0f423b;--primary-wash:#e8f0ee;--primary-wash-firm:#d5e4e0;--accent:#79d6e3;--accent-hover:#5dc8d8;--accent-wash:#eefbfc;--ink:#0b1a14;--body:#2c332f;--muted:#6b736e;--line:#e3e5e4;--line-firm:#cdd1cf;--head-bg:#f2f3f2;--success:#4e9e2b;--success-wash:#eaf6e4;--success-ink:#2f6318;--warn:#b8850c;--warn-wash:#fdf3de;--warn-ink:#7d5a03;--info:#3b7fd6;--info-wash:#ebf3fe;--info-ink:#26559a;--error:#c53a2b;--error-wash:#fdece9;--error-ink:#94241a;--radius-card:12px;--radius:8px;--shadow-card:#919eab4d 0 0 2px, #919eab1f 0 12px 24px -4px;--shadow-soft:#00000014 0 2px 4px;--rail-w:264px;--appbar-h:70px;color:var(--body);background:var(--bg);font-synthesis:none;-webkit-font-smoothing:antialiased;font-family:Onest,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;max-width:100%;overflow-x:hidden}body{background:var(--bg);min-width:320px;min-height:100vh;margin:0;line-height:1.5}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.pagehead :focus-visible,.sidenav--current:focus-visible{outline-color:var(--accent)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--muted)}.appshell{min-height:100vh;display:flex}.sidebar{z-index:40;width:var(--rail-w);background:var(--surface);border-right:1px solid var(--line);flex-direction:column;height:100vh;display:flex;position:fixed;inset:0 auto 0 0}.sidebar__brand{height:var(--appbar-h);border-bottom:1px solid #0000;flex:none;align-items:center;padding:0 1.1rem;display:flex}.brand{min-width:0;color:inherit;align-items:center;gap:.65rem;text-decoration:none;display:flex}.brandmark{object-fit:contain;width:auto;height:38px;display:block}.brand__sub{color:var(--muted);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;font-size:.65rem;font-weight:700}.sidebar__nav{flex-direction:column;flex:1;padding:.5rem .85rem 1.25rem;display:flex;position:relative;overflow-y:auto}.sidebar__section{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin:1.1rem 0 .4rem;padding:0 .65rem;font-size:.6875rem;font-weight:600}.sidebar__section:first-child{margin-top:.4rem}.sidenav{border-radius:var(--radius);color:var(--body);align-items:center;gap:.75rem;margin-bottom:.15rem;padding:.65rem;font-size:.9375rem;font-weight:500;text-decoration:none;transition:background-color .14s,color .14s;display:flex}.sidenav:hover{color:var(--primary);background:var(--primary-wash)}.sidenav--current,.sidenav--current:hover{color:#fff;background:var(--primary);font-weight:600}.sidenav__icon{flex:none;place-items:center;width:1.25rem;height:1.25rem;display:grid}.sidenav__icon svg,.btn svg,.iconbtn svg,.row-action svg{width:100%;height:100%;display:block}.sidebar__foot{margin-top:auto;padding-top:1.25rem}.appshell__main{min-width:0;margin-left:var(--rail-w);flex-direction:column;flex:1;display:flex}.appbar{z-index:30;height:var(--appbar-h);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffff2;align-items:center;gap:1rem;padding:0 1.5rem;display:flex;position:sticky;top:0}.appbar__spacer{flex:1}.appbar__context{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.8125rem;font-weight:600}.appbar__toggle{border:1px solid var(--line-firm);border-radius:var(--radius);width:2.5rem;height:2.5rem;color:var(--body);background:var(--surface);cursor:pointer;place-items:center;padding:.65rem;display:none}.appbar__session{align-items:center;gap:.85rem;display:flex}.whoami{align-items:center;gap:.65rem;display:flex}.whoami__label{color:#fff;background:var(--primary);border-radius:50%;flex:none;place-items:center;width:2.25rem;height:2.25rem;font-size:.8125rem;font-weight:700;display:grid}.whoami__name{color:var(--ink);flex-direction:column;font-size:.875rem;line-height:1.25;display:flex}.whoami__name small{color:var(--muted);font-size:.7rem}.page{flex:1;width:100%;padding:1.5rem}.pagehead{border-radius:var(--radius-card);background:var(--primary);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;padding:1.15rem 1.5rem;display:flex;box-shadow:0 8px 20px #165a501f}.eyebrow{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.75rem;font-weight:600}.pagehead .eyebrow{color:#ffffffa6}.pagehead__title{color:#fff;margin:.15rem 0 0;font-size:1.375rem;font-weight:600;line-height:1.2}.pagehead__meta{color:#ffffffb8;margin:.2rem 0 0;font-size:.875rem}.pagehead__status .stamp{color:#fff;background:#ffffff24;border:1px solid #ffffff2e}.pagehead__count{color:#fff;border:1px solid #ffffff40;border-radius:999px;padding:.35rem .7rem;font-size:.8rem;font-weight:600}.btn{border-radius:var(--radius);min-height:2.55rem;color:inherit;cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;gap:.45rem;padding:.68rem 1.15rem;font-size:.875rem;font-weight:600;line-height:1;text-decoration:none;transition:background-color .14s,border-color .14s,box-shadow .14s;display:inline-flex}.btn svg{width:1rem;height:1rem}.btn:disabled{opacity:.45;cursor:default}.btn--primary{border-color:var(--accent);color:var(--ink);background:var(--accent)}.btn--primary:hover:not(:disabled){border-color:var(--accent-hover);background:var(--accent-hover);box-shadow:var(--shadow-soft)}.btn--danger{border-color:var(--error);color:#fff;background:var(--error)}.btn--danger:hover:not(:disabled){border-color:var(--error-ink);background:var(--error-ink);box-shadow:var(--shadow-soft)}.btn--quiet{border-color:var(--line-firm);color:var(--body);background:var(--surface)}.btn--quiet:hover:not(:disabled){border-color:var(--primary);color:var(--primary);background:var(--primary-wash)}.btn--small{min-height:2.25rem;padding:.5rem .8rem;font-size:.8125rem}.btn--sso{width:100%;min-height:2.9rem;color:var(--ink);background:var(--surface);border-color:#8b8b8b}.btn--sso:hover:not(:disabled){border-color:var(--primary);background:var(--primary-wash);box-shadow:var(--shadow-soft)}.microsoft-icon{flex:none;width:1.15rem;height:1.15rem}.iconbtn{border:1px solid var(--line-firm);border-radius:var(--radius);width:2.6rem;height:2.6rem;color:var(--body);background:var(--surface);cursor:pointer;place-items:center;padding:.65rem;display:grid}.iconbtn:hover:not(:disabled){color:var(--primary);border-color:var(--primary);background:var(--primary-wash)}.iconbtn:disabled{color:var(--line-firm);background:var(--head-bg);opacity:.55;cursor:not-allowed}.weekbar{border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-card);flex-wrap:wrap;align-items:center;gap:.8rem;margin-bottom:1.25rem;padding:1rem 1.15rem;display:flex}.weekbar__stepper{align-items:center;gap:.65rem;display:flex}.weekbar__date{align-items:center;gap:.65rem;min-width:15.25rem;display:flex}.weekbar__date>svg{width:1.2rem;height:1.2rem;color:var(--primary)}.weekbar__date span{flex-direction:column;line-height:1.25;display:flex}.weekbar__date small{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;font-size:.7rem;font-weight:600}.weekbar__date strong{color:var(--ink);font-size:.9375rem}.weekbar__spacer{flex:1}.autosave{color:var(--muted);font-size:.8rem}.tiles{grid-template-columns:repeat(4,minmax(10rem,1fr));gap:1rem;margin-bottom:1.25rem;display:grid}.tile{border-radius:var(--radius-card);background:var(--head-bg);align-items:center;min-height:74px;padding:.95rem 1.15rem .95rem 1.4rem;display:flex;position:relative;overflow:hidden}.tile__mark{background:var(--muted);width:.25rem;position:absolute;inset:0 auto 0 0}.tile__value{color:var(--ink);font-variant-numeric:tabular-nums;font-size:1.375rem;font-weight:600;line-height:1.15}.tile__label{color:var(--muted);margin-top:.1rem;font-size:.8125rem}.tile--success{background:var(--success-wash)}.tile--success .tile__mark{background:var(--success)}.tile--success .tile__value{color:var(--success-ink)}.tile--warn{background:var(--warn-wash)}.tile--warn .tile__mark{background:var(--warn)}.tile--warn .tile__value{color:var(--warn-ink)}.tile--info{background:var(--info-wash)}.tile--info .tile__mark{background:var(--info)}.tile--info .tile__value{color:var(--info-ink)}.notice{border-radius:var(--radius);color:var(--body);background:var(--primary-wash);align-items:baseline;gap:.6rem;margin-bottom:1rem;padding:.75rem 1rem;font-size:.9375rem;display:flex}.notice--error{color:var(--error-ink);background:var(--error-wash)}.notice__tag{color:var(--primary);letter-spacing:.04em;text-transform:uppercase;flex:none;font-size:.75rem;font-weight:700}.notice--error .notice__tag{color:var(--error)}.draft-notice{flex-wrap:wrap;align-items:center}.draft-notice__action{margin-left:auto}.login{background:var(--bg);flex-direction:column;min-height:100vh;display:flex}.awning{background:var(--accent);flex:none;height:4px}.login__body{flex:1;grid-template-columns:minmax(0,26rem) minmax(0,32rem);place-content:center;padding:2.5rem 1.5rem;display:grid}.login__panel{border-radius:var(--radius-card) 0 0 var(--radius-card);background:var(--surface);order:1;justify-content:center;align-items:center;padding:2.5rem;display:flex}.login__field{border-radius:0 var(--radius-card) var(--radius-card) 0;color:#fff;background:var(--primary);flex-direction:column;order:2;display:flex}.login__panel,.login__field{box-shadow:var(--shadow-card)}.login__fieldinner{flex-direction:column;flex:1;justify-content:center;gap:2rem;padding:3rem clamp(2rem,4vw,3.5rem);display:flex}.login__eyebrow{color:var(--accent);letter-spacing:.16em;text-transform:uppercase;margin:0;font-size:.75rem;font-weight:600}.login__name{letter-spacing:-.01em;margin:.75rem 0 0;font-size:clamp(2.25rem,4vw,3.25rem);font-weight:600;line-height:1.05}.login__blurb{color:#ffffffbf;max-width:38ch;margin:1rem 0 0;font-size:1rem;line-height:1.6}.login__points{border-top:1px solid #fff3;flex-direction:column;gap:1rem;max-width:42ch;margin:0;padding:1.75rem 0 0;list-style:none;display:flex}.login__point{color:#ffffffbf;align-items:baseline;gap:.85rem;font-size:.9375rem;line-height:1.5;display:flex}.login__pointmark{width:1.5rem;height:1.5rem;color:var(--accent);background:#ffffff1f;border-radius:50%;flex:none;align-self:flex-start;place-items:center;font-size:.6875rem;font-weight:600;display:grid}.login__card{flex-direction:column;gap:1rem;width:100%;max-width:24rem;display:flex}.login__logo{width:168px;height:auto;display:block}.login__cardhead{margin-top:.5rem}.login__title{color:var(--ink);margin:0;font-size:1.5rem;font-weight:600}.login__intro{color:var(--muted);margin:.35rem 0 0;font-size:.9375rem}.login__submit{margin-top:.35rem;padding-top:.8rem;padding-bottom:.8rem}.login__help{border-top:1px solid var(--line);color:var(--muted);margin:.25rem 0 0;padding-top:1rem;font-size:.8125rem;line-height:1.5}.auth-loading{min-height:100vh;color:var(--muted);background:var(--bg);justify-content:center;align-items:center;gap:.55rem;display:flex}.auth-loading .field-save-spinner{width:.8rem;height:.8rem}.rise{animation:.34s ease-out both rise}.rise--1{animation-delay:40ms}.rise--2{animation-delay:.1s}.rise--3{animation-delay:.16s}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.guidance{border-left:3px solid var(--accent);border-radius:var(--radius);color:var(--body);background:var(--accent-wash);box-shadow:var(--shadow-card);grid-template-columns:auto 1fr;align-items:start;gap:.8rem 1.25rem;margin-bottom:1.25rem;padding:.9rem 1.15rem;display:grid}.guidance__title{color:var(--ink);white-space:nowrap;padding-top:.08rem;font-size:.8rem;font-weight:700}.guidance ol{color:var(--muted);flex-wrap:wrap;gap:.35rem 1.65rem;margin:0;padding-left:1.25rem;font-size:.78rem;display:flex}.guidance li{flex:15rem;padding-left:.15rem}.guidance strong{color:var(--ink)}.ledger-card,.notes-card,.empty-card{border-radius:var(--radius-card);background:var(--surface);min-width:0;box-shadow:var(--shadow-card);margin-bottom:1.25rem}.ledger-card{overflow:hidden}.ledger-card__head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:1.05rem 1.15rem .9rem;display:flex}.ledger-card__head h2{color:var(--ink);margin:0;font-size:1rem}.ledger-card__head p{color:var(--muted);margin:.15rem 0 0;font-size:.8125rem}.ledger-card__foot{border-top:1px solid var(--line);background:var(--head-bg);justify-content:flex-start;padding:.7rem 1rem;display:flex}.ledger-scroll{width:100%;overflow-x:auto}.ledger{border-collapse:separate;border-spacing:0;width:100%;min-width:940px}.ledger__th{border-bottom:1px solid var(--line);color:var(--ink);background:var(--head-bg);letter-spacing:.055em;text-align:left;text-transform:uppercase;white-space:nowrap;padding:.7rem .8rem;font-size:.7rem;font-weight:700}.ledger__th small{color:var(--muted);letter-spacing:0;text-transform:none;margin-top:.05rem;font-size:.66rem;font-weight:500;display:block}.ledger__td{border-bottom:1px solid var(--line);height:58px;color:var(--body);vertical-align:middle;padding:.45rem .8rem;font-size:.85rem;font-weight:500}.ledger__row:last-child .ledger__td{border-bottom:none}.ledger__row:hover .ledger__td{background:#fafbfa}.ledger__row:focus-within .ledger__td{background:var(--primary-wash)}.ledger__th--num,.ledger__td--num{text-align:right;font-variant-numeric:tabular-nums}.ledger__th--lane{color:var(--primary);background:var(--primary-wash-firm)}.ledger__td--lane{color:var(--primary);background:var(--primary-wash)}.ledger__row:hover .ledger__td--lane,.ledger__row:focus-within .ledger__td--lane{background:var(--primary-wash-firm)}.ledger__td--total{border-top:1px solid var(--line);height:auto;color:var(--ink);background:var(--head-bg);border-bottom:0;padding-top:.75rem;padding-bottom:.75rem;font-weight:600;position:sticky;bottom:0}.ledger__td--day-total{text-align:center;padding-left:.35rem;padding-right:.35rem}.timesheet-grid{table-layout:fixed;min-width:1280px}.portfolio-col{width:180px;min-width:180px}.project-col{width:250px;min-width:250px}.task-col{width:180px;min-width:180px}.timesheet-grid .portfolio-col,.timesheet-grid .project-col,.timesheet-grid .task-col{white-space:normal;line-height:1.25}.reorder-col,.actions-col{width:3.3rem}.work-item-col{white-space:normal;background:#dff5f8;width:288px;min-width:288px;line-height:1.25}.timesheet-grid .ledger__th--num{text-align:center}.timesheet-grid .day-col{width:124px;min-width:124px}.timesheet-grid .total-col{width:76px;min-width:76px}.day-heading{flex-direction:column;justify-content:flex-start;align-items:center;min-height:4.2rem;line-height:1.2;display:flex}.day-heading>span{font-size:.68rem}.day-heading small{margin-top:.15rem}.day-heading__total{width:100%;color:var(--ink);letter-spacing:0;text-transform:none;border-top:1px solid #cdd1cfcc;margin-top:auto;padding-top:.45rem;font-size:.8rem;font-weight:700;display:block}.day-heading__total span{color:var(--muted);font-size:.6rem;font-weight:600}.day-heading__total--over{color:var(--warn-ink)}.day-heading--total{color:var(--primary);justify-content:space-between}.ledger__td--project{grid-template-columns:minmax(130px,1fr) minmax(115px,.65fr);align-items:center;gap:.5rem;display:grid}.project{flex-direction:column;min-width:0;line-height:1.25;display:flex}.project strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;overflow:hidden}.project__code{color:var(--primary);letter-spacing:.05em;font-size:.66rem;font-weight:700}.grid-select{width:100%;min-width:0;color:var(--body);background:0 0;border:1px solid #0000;border-radius:6px;padding:.35rem 1.4rem .35rem .4rem;font-size:.78rem}.grid-select:hover:not(:disabled),.grid-select:focus{border-color:var(--line-firm);background:var(--surface)}.ledger__td--text{padding:.3rem .45rem}.ledger__td.work-item-cell{vertical-align:top;background:var(--accent-wash)}.ledger__row:hover .work-item-cell,.ledger__row:focus-within .work-item-cell{background:#dff5f8}.work-item-fields{gap:.28rem;padding:.18rem 0;display:grid}.work-item-fields .grid-dropdown{min-height:2.2rem}.work-item-fields .grid-text{min-height:3.25rem;padding-left:.55rem}.grid-dropdown{width:100%;min-height:3rem;color:var(--body);text-overflow:ellipsis;background-color:#0000;border:1px solid #0000;border-radius:6px;padding:.45rem 1.5rem .45rem .45rem;font-size:.74rem;font-weight:500;line-height:1.3;display:block;overflow:hidden}.grid-dropdown:hover:not(:disabled),.grid-dropdown:focus{border-color:var(--line-firm);background-color:var(--surface)}.grid-dropdown:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #165a501f}.grid-dropdown:disabled{appearance:none;opacity:1}.grid-text{resize:none;width:100%;min-height:4rem;color:var(--body);background:0 0;border:1px solid #0000;border-radius:6px;padding:.4rem .45rem;font-size:.74rem;font-weight:500;line-height:1.3;display:block;overflow:auto}.grid-text--task{color:var(--ink);font-weight:600}.grid-text:hover:not(:disabled),.grid-text:focus{border-color:var(--line-firm);background:var(--surface)}.grid-text:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #165a501f}.grid-text:disabled{opacity:1}.ledger__td--hours{vertical-align:middle;background:#fbfdfc;padding:.45rem}.ledger__td--hours.weekend,.ledger__th.weekend{background:#f7f7f7}.ledger__td--hours .save-field{justify-content:center;align-items:center;display:flex}.hours-input{width:80%;min-width:48px;color:var(--ink);text-align:center;font-variant-numeric:tabular-nums;-moz-appearance:textfield;background:0 0;border:1px solid #0000;border-radius:6px;margin:0 auto;padding:.45rem .35rem;font-size:.875rem;font-weight:700}.hours-input::-webkit-inner-spin-button{-webkit-appearance:none}.hours-input:hover:not(:disabled){border-color:var(--line-firm);background:var(--surface)}.hours-input:focus{border-color:var(--primary);background:var(--surface);outline:none;box-shadow:0 0 0 3px #165a501f}.hours-input:disabled,.grid-select:disabled{appearance:none;opacity:1;color:var(--body);cursor:not-allowed}.hours-input::placeholder{color:#9ca49f;font-weight:400}.save-field{min-width:0;position:relative}.save-field>input,.save-field>select,.save-field>textarea{transition:border-color .14s,box-shadow .14s,background-color .14s}.save-field--error>input,.save-field--error>select,.save-field--error>textarea{border-color:var(--error);box-shadow:0 0 0 3px #c53a2b24}.field-save-status{z-index:5;letter-spacing:.02em;white-space:nowrap;pointer-events:none;border:1px solid #0000;border-radius:999px;align-items:center;gap:.25rem;min-height:1.15rem;padding:.16rem .38rem;font-size:.58rem;font-weight:800;line-height:1;display:inline-flex;position:absolute;bottom:-.62rem;right:.15rem;box-shadow:0 1px 3px #0000001f}.field-save-status--saving{color:var(--body);background:var(--surface);border-color:var(--line-firm)}.field-save-status--saved{color:var(--success-ink);background:var(--success-wash);border-color:#4e9e2b40}.field-save-status--error{color:var(--error-ink);background:var(--error-wash);cursor:pointer;pointer-events:auto;border-color:#c53a2b4d}.field-save-spinner{border:1.5px solid;border-right-color:#0000;border-radius:50%;width:.55rem;height:.55rem;animation:.65s linear infinite field-save-spin}.save-field--notes>textarea{padding-right:7.5rem}.save-field--notes .field-save-status{top:.45rem;bottom:auto;right:.45rem}@keyframes field-save-spin{to{transform:rotate(360deg)}}.row-total{text-align:center;padding-left:.35rem;padding-right:.35rem;font-weight:700}.row-total strong,.row-total span{display:block}.row-total span{color:var(--muted);margin-top:.08rem;font-size:.6rem;font-weight:500}.ledger__td--reorder,.ledger__td--action{text-align:center;padding:.2rem}.row-reorder{flex-direction:column;justify-content:center;align-items:center;gap:.05rem;display:flex}.row-action{width:2rem;height:2rem;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:.45rem}.row-reorder .row-action{width:1.7rem;height:1.7rem;padding:.32rem}.row-action:disabled{color:var(--line-firm);cursor:not-allowed}.row-action--move:hover:not(:disabled){color:var(--primary);background:var(--primary-wash)}.row-action--delete:hover{color:var(--error);background:var(--error-wash)}.total--over{color:var(--warn-ink);background:var(--warn-wash)}.input{border:1px solid var(--line-firm);border-radius:var(--radius);width:100%;color:var(--body);background:var(--surface);padding:.6rem .75rem;font-size:.9rem;transition:border-color .14s,box-shadow .14s}.input:focus{border-color:var(--primary);outline:0;box-shadow:0 0 0 3px #165a501f}.input:disabled{color:var(--muted);background:var(--head-bg)}.empty-inline{color:var(--muted);text-align:center;flex-direction:column;align-items:center;gap:.2rem;padding:2rem;display:flex}.empty-inline strong{color:var(--ink)}.notes-card{grid-template-columns:minmax(190px,.35fr) 1fr;gap:1.25rem;padding:1.15rem;display:grid}.notes-card label{color:var(--ink);flex-direction:column;font-size:.9rem;display:flex}.notes-card label span{color:var(--muted);margin-top:.15rem;font-size:.78rem;font-weight:400}.notes-card textarea{resize:vertical}.formbar{z-index:20;border-radius:var(--radius-card);box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffff7;align-items:center;gap:.75rem;padding:.9rem 1.15rem;display:flex;position:sticky;bottom:1rem}.formbar__spacer{flex:1}.formbar__hint{color:var(--muted);font-size:.85rem}.stamp{border-radius:999px;align-items:center;padding:.35rem .6rem;font-size:.75rem;font-weight:600;line-height:1;display:inline-flex}.stamp--archived{color:var(--muted);background:var(--head-bg)}.stamp--active{color:var(--success-ink);background:var(--success-wash)}.history-table{min-width:780px}.history-table .ledger__td{height:54px;padding:.75rem 1rem}.ledger__td--right{text-align:right}.table-link{color:var(--primary);font-size:.82rem;font-weight:700;text-decoration:none}.table-link:hover{text-underline-offset:3px;text-decoration:underline}.catalog-note{border-radius:var(--radius);color:var(--muted);background:var(--primary-wash);margin-bottom:1.25rem;padding:.8rem 1rem;font-size:.85rem}.catalog-sections{gap:1.25rem;display:grid}.catalog-card{border-radius:var(--radius-card);background:var(--surface);min-width:0;box-shadow:var(--shadow-card);overflow:hidden}.catalog-card__head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.15rem;display:flex}.catalog-card__head h2{color:var(--ink);margin:0;font-size:1rem}.catalog-card__head p{color:var(--muted);margin:.12rem 0 0;font-size:.78rem}.catalog-table{min-width:720px}.catalog-table--projects{min-width:960px}.catalog-table .ledger__td{height:54px;padding:.65rem .85rem}.catalog-table .ledger__th--actions{text-align:right;width:12rem}.catalog-id{color:var(--primary);font-size:.8rem;font-weight:700}.catalog-parent{color:var(--muted);font-size:.8rem}.ledger__row--archived .ledger__td{color:var(--muted);background:#fafafa}.ledger__td--actions{white-space:nowrap;justify-content:flex-end;align-items:center;gap:.85rem;display:flex}.action-link{color:var(--primary);cursor:pointer;background:0 0;border:0;align-items:center;gap:.3rem;padding:.3rem 0;font-size:.78rem;font-weight:700;display:inline-flex}.action-link:hover{text-underline-offset:3px;text-decoration:underline}.action-link svg{width:.9rem;height:.9rem}.modalbackdrop{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#10262294;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.appmodal{border:1px solid var(--line-firm);border-radius:var(--radius-card);background:var(--surface);width:min(100%,34rem);max-height:calc(100dvh - 2rem);overflow-y:auto;box-shadow:0 24px 64px #0d2d2747}.appmodal--wide{width:min(100%,42rem)}.appmodal__heading{padding:1.35rem 1.5rem .3rem}.appmodal__heading--dismissible{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.appmodal__heading .eyebrow{margin-bottom:.3rem}.appmodal__heading h2{color:var(--ink);margin:0;font-size:1.3rem}.modal-close{width:2rem;height:2rem;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;margin:-.3rem -.45rem 0 0;padding:0;font-size:1.5rem;line-height:1}.modal-close:hover{color:var(--ink);background:var(--head-bg)}.appmodal__body{padding:.8rem 1.5rem 1.4rem}.appmodal__body form,.editor-fields{gap:1rem;display:grid}.field{flex-direction:column;gap:.35rem;display:flex}.field__label{color:var(--ink);font-size:.8rem;font-weight:600}.field__hint{color:var(--muted);font-size:.72rem}.toggle{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);cursor:pointer;align-items:flex-start;gap:.65rem;padding:.65rem .75rem;display:flex}.toggle__box{width:1.05rem;height:1.05rem;accent-color:var(--primary);flex:none;margin:.18rem 0 0}.toggle__text{flex-direction:column;gap:.1rem;display:flex}.toggle__name{color:var(--ink);font-size:.9rem;font-weight:600}.toggle__hint{color:var(--muted);font-size:.75rem}.appmodal__actions{justify-content:flex-end;gap:.65rem;padding-top:.3rem;display:flex}.modal-copy{color:var(--body);margin:0 0 1rem;font-size:.9rem}.delete-summary{border-left:3px solid var(--error);border-radius:var(--radius);background:var(--error-wash);flex-direction:column;gap:.15rem;margin-bottom:1rem;padding:.8rem .9rem;display:flex}.delete-summary strong{color:var(--ink);font-size:.9rem}.delete-summary span{color:var(--muted);font-size:.78rem}.empty-card{text-align:center;padding:4rem 1.5rem}.empty-card__icon{width:3rem;height:3rem;color:var(--success-ink);background:var(--success-wash);border-radius:50%;place-items:center;margin:0 auto .9rem;padding:.7rem;display:grid}.empty-card__icon svg{width:100%;height:100%}.empty-card h2{color:var(--ink);margin:0;font-size:1.1rem}.empty-card p{color:var(--muted);margin:.3rem 0 0;font-size:.9rem}.help-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;display:grid}.help-card{border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-card);padding:1.25rem 1.4rem}.help-card h2{color:var(--ink);margin:0 0 .65rem;font-size:1rem}.help-card p{color:var(--muted);margin:0;font-size:.875rem}.help-card ol,.help-card ul{color:var(--body);gap:.55rem;margin:0;padding-left:1.25rem;font-size:.875rem;display:grid}.help-card a{color:var(--primary);text-underline-offset:3px;font-weight:700}.skeleton{border-radius:var(--radius-card);background:var(--line);box-shadow:var(--shadow-card);gap:1px;display:grid;overflow:hidden}.skeleton__row{background:linear-gradient(90deg,#fff,#f1f3f2,#fff) 0 0/200% 100%;height:52px;animation:1.4s ease-in-out infinite sweep}@keyframes sweep{0%{background-position:200% 0}to{background-position:-200% 0}}.scrim{display:none}.admin-tabs{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-card);gap:.2rem;margin:-1rem 0 1.25rem;padding:.35rem;display:flex;overflow-x:auto}.admin-tab{border-radius:calc(var(--radius) - 2px);color:var(--muted);white-space:nowrap;align-items:center;gap:.45rem;padding:.7rem .9rem;font-size:.84rem;font-weight:600;text-decoration:none;display:inline-flex}.admin-tab:hover{color:var(--primary);background:var(--primary-wash)}.admin-tab--current,.admin-tab--current:hover{color:#fff;background:var(--primary)}.admin-tab__icon{width:1rem;height:1rem}.admin-tab__icon svg{width:100%;height:100%;display:block}.admin-panel{min-width:0}.admin-content-head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.admin-content-head h2{color:var(--ink);margin:0;font-size:1.1rem}.admin-content-head p{color:var(--muted);margin:.2rem 0 0;font-size:.84rem}.admin-table{min-width:920px}.admin-user{flex-direction:column;line-height:1.35;display:flex}.admin-user strong{color:var(--ink);font-size:.86rem}.admin-user small{color:var(--muted);font-size:.73rem;font-weight:400}.admin-date{color:var(--muted);white-space:nowrap;font-size:.78rem}.admin-empty{color:var(--muted);text-align:center;height:8rem!important}.report-filters{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-soft);align-items:flex-end;gap:.75rem;margin-bottom:1rem;padding:.85rem 1rem;display:flex}.report-filters .field{width:12rem}.report-filters>span{color:var(--muted);margin:0 0 .62rem auto;font-size:.72rem}.report-definition{border-left:3px solid var(--info);border-radius:var(--radius);color:var(--muted);background:var(--info-wash);margin-bottom:1rem;padding:.75rem 1rem;font-size:.78rem}.report-definition strong{color:var(--info-ink)}.report-kpis{grid-template-columns:repeat(5,minmax(9rem,1fr))}.report-card{margin-bottom:1rem}.report-weekly-table{min-width:760px}.report-employee-table{min-width:940px}.report-project-table{min-width:900px}.report-progress{grid-template-columns:minmax(5rem,9rem) 2.7rem auto;align-items:center;gap:.55rem;min-width:15rem;display:grid}.report-progress__track,.allocation-bar__track{background:var(--line);border-radius:999px;height:.45rem;display:block;overflow:hidden}.report-progress__track>span,.allocation-bar__track>span{border-radius:inherit;background:var(--primary);height:100%;display:block}.report-progress strong{color:var(--ink);font-variant-numeric:tabular-nums;text-align:right;font-size:.76rem}.report-progress small{color:var(--muted);white-space:nowrap;font-size:.68rem}.report-number--warn{color:var(--warn-ink)}.report-number--error{color:var(--error-ink)}.allocation-bar{grid-template-columns:minmax(6rem,1fr) 3.5rem;align-items:center;gap:.65rem;min-width:11rem;display:grid}.allocation-bar__track>span{background:var(--info)}.allocation-bar strong{color:var(--ink);font-variant-numeric:tabular-nums;text-align:right;font-size:.76rem}.role-pill{color:var(--success-ink);background:var(--success-wash);border-radius:999px;padding:.3rem .55rem;font-size:.72rem;font-weight:700;display:inline-flex}.role-pill--admin{color:#5d3583;background:#f2eafa}.role-options{border:0;gap:.55rem;margin:0;padding:0;display:grid}.role-options legend{margin-bottom:.35rem}.role-option{border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;align-items:flex-start;gap:.7rem;padding:.75rem;display:flex}.role-option:hover{border-color:var(--line-firm);background:#fafbfa}.role-option input{accent-color:var(--primary);margin-top:.22rem}.role-option span{flex-direction:column;gap:.1rem;display:flex}.role-option strong{color:var(--ink);font-size:.86rem}.role-option small{color:var(--muted);font-size:.73rem}.directory-results{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);max-height:15rem;overflow-y:auto;box-shadow:0 8px 24px #0d2d2714}.directory-result{border:0;border-bottom:1px solid var(--line);width:100%;color:var(--body);text-align:left;cursor:pointer;background:0 0;align-items:center;gap:.7rem;padding:.7rem .75rem;display:flex}.directory-result:last-child{border-bottom:0}.directory-result:hover:not(:disabled){background:var(--primary-wash)}.directory-result:disabled{color:var(--muted);background:var(--head-bg);cursor:not-allowed}.directory-selection{border:1px solid var(--line-firm);border-radius:var(--radius);background:var(--primary-wash);align-items:center;gap:.7rem;padding:.75rem;display:flex}.directory-avatar{width:2rem;height:2rem;color:var(--primary);box-shadow:inset 0 0 0 1px var(--line);background:#fff;border-radius:50%;flex:none;place-items:center;font-size:.7rem;font-weight:800;display:grid}.directory-person{flex-direction:column;flex:1;gap:.08rem;min-width:0;display:flex}.directory-person strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:.84rem;overflow:hidden}.directory-person small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;overflow:hidden}.directory-added{color:var(--muted);flex:none;font-size:.68rem;font-weight:700}.directory-status{color:var(--muted);text-align:center;padding:.9rem;font-size:.78rem}.inline-error{border-radius:var(--radius);color:var(--error-ink);background:var(--error-wash);border:1px solid #c53a2b40;padding:.7rem .8rem;font-size:.78rem}.role-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.role-card{border-radius:var(--radius-card);background:var(--surface);min-width:0;box-shadow:var(--shadow-card);padding:1.15rem}.role-card__head{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.role-card__head>div{align-items:center;gap:.75rem;min-width:0;display:flex}.role-card__head h3{color:var(--ink);margin:0;font-size:.95rem}.role-card__head code{color:var(--muted);font-size:.68rem}.role-card__head>strong{color:var(--muted);background:var(--head-bg);border-radius:999px;flex:none;padding:.28rem .55rem;font-size:.7rem}.role-card__icon{width:2.35rem;height:2.35rem;color:var(--success-ink);background:var(--success-wash);border-radius:50%;flex:none;place-items:center;font-weight:700;display:grid}.role-card__icon--admin{color:#5d3583;background:#f2eafa}.role-card>p{min-height:2.5rem;color:var(--muted);margin:.85rem 0;font-size:.8rem}.role-members{border-top:1px solid var(--line);flex-wrap:wrap;gap:.4rem;padding-top:.8rem;font-size:.75rem;display:flex}.role-member{border:1px solid var(--line);color:var(--body);background:#fafbfa;border-radius:999px;padding:.3rem .5rem}.role-member--inactive{color:var(--muted);text-decoration:line-through}.settings-card{border-radius:var(--radius-card);background:var(--surface);max-width:42rem;box-shadow:var(--shadow-card);overflow:hidden}.settings-card--wide{max-width:58rem}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.schedule-summary{border-left:3px solid var(--primary);border-radius:var(--radius);background:var(--primary-wash);flex-direction:column;gap:.2rem;padding:.9rem 1rem;display:flex}.schedule-summary strong{color:var(--ink);font-size:.9rem}.schedule-summary span{color:var(--muted);font-size:.76rem;line-height:1.45}.reminder-list{display:grid}.reminder-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(18rem,1fr) minmax(10rem,.6fr) auto;align-items:end;gap:1rem;padding:1rem 1.15rem;display:grid}.reminder-row__fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;display:grid}.reminder-row__summary{flex-direction:column;justify-content:center;min-height:2.5rem;display:flex}.reminder-row__summary span{color:var(--ink);font-size:.84rem;font-weight:700}.reminder-row__summary small{color:var(--muted);font-size:.7rem}.reminder-row__actions{align-items:center;gap:.75rem;min-height:2.5rem;display:flex}.action-link--danger{color:var(--error)}.settings-footnote{color:var(--muted);background:var(--head-bg);padding:.8rem 1.15rem;font-size:.72rem}.audit-filters{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);align-items:flex-end;gap:.75rem;margin-bottom:1rem;padding:.8rem 1rem;display:flex}.audit-filters .field{width:min(15rem,35%)}.audit-filters>span{color:var(--muted);margin:0 0 .65rem auto;font-size:.75rem}.audit-table{min-width:980px}.audit-table .ledger__td:nth-child(4){flex-direction:column;align-items:flex-start;display:flex}.audit-table .ledger__td:nth-child(4) small{max-width:14rem;color:var(--muted);text-overflow:ellipsis;font-size:.65rem;font-weight:400;overflow:hidden}.audit-action{color:var(--info-ink);background:var(--info-wash);border-radius:5px;padding:.25rem .45rem;font-size:.68rem;font-weight:700;display:inline-flex}.audit-action--create{color:var(--success-ink);background:var(--success-wash)}.audit-action--update{color:var(--info-ink);background:var(--info-wash)}.audit-action--delete{color:var(--error-ink);background:var(--error-wash)}.audit-entity{color:var(--ink);font-size:.78rem}.audit-detail{max-width:28rem;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;overflow:hidden}.access-denied{background:var(--bg);place-items:center;min-height:100vh;padding:1rem;display:grid}.access-denied__card{border-radius:var(--radius-card);background:var(--surface);width:min(100%,30rem);box-shadow:var(--shadow-card);text-align:center;padding:2rem}.access-denied__card h1{color:var(--ink);margin:.35rem 0 .65rem;font-size:1.35rem}.access-denied__card p:not(.eyebrow){color:var(--muted);margin:0 0 1.25rem;font-size:.9rem}@media (width<=1100px){.tiles{grid-template-columns:repeat(2,minmax(10rem,1fr))}.report-kpis{grid-template-columns:repeat(3,minmax(9rem,1fr))}.notes-card{grid-template-columns:1fr}}@media (width<=820px){:root{--rail-w:250px}.sidebar{transition:transform .18s;transform:translate(-100%);box-shadow:0 16px 44px #0b1a1433}.sidebar--open{transform:translate(0)}.appshell__main{margin-left:0}.appbar__toggle{display:grid}.scrim{z-index:35;background:#0b1a1466;border:0;padding:0;display:block;position:fixed;inset:0}.page{padding:1rem}.help-grid{grid-template-columns:1fr}.login__body{grid-template-columns:minmax(0,34rem);padding:1.5rem 1rem 3rem}.login__panel{border-radius:var(--radius-card) var(--radius-card) 0 0;padding:2rem 1.5rem}.login__field{border-radius:0 0 var(--radius-card) var(--radius-card)}.login__fieldinner{gap:1.5rem;padding:2rem 1.5rem 2.5rem}.role-grid{grid-template-columns:1fr}.report-filters{flex-wrap:wrap;align-items:stretch}.report-filters>span{width:100%;margin:0}.reminder-row{grid-template-columns:1fr;align-items:stretch}.reminder-row__summary{min-height:0}.reminder-row__actions{justify-content:flex-end}}@media (width<=600px){.appbar{padding:0 1rem}.appbar__context,.whoami__name{display:none}.appbar__session{gap:.5rem}.pagehead{padding:1rem 1.1rem}.pagehead__title{font-size:1.2rem}.weekbar__stepper{justify-content:space-between;width:100%}.weekbar__date{min-width:0}.weekbar__date>svg,.weekbar__spacer{display:none}.autosave{margin-left:auto}.tiles{grid-template-columns:repeat(2,1fr);gap:.65rem}.tile{min-height:68px;padding:.8rem .8rem .8rem 1.05rem}.tile__value{font-size:1.2rem}.ledger-card__head{align-items:flex-start}.formbar{border-radius:0;flex-wrap:wrap;margin:0 -1rem -1rem;bottom:0}.formbar__hint{width:100%}.formbar .btn{flex:1}.admin-content-head{align-items:flex-start}.admin-tabs{margin-top:-.8rem}.admin-tab{padding:.65rem .75rem}.report-filters{flex-direction:column}.report-filters .field,.report-filters .btn{width:100%}.report-kpis{grid-template-columns:repeat(2,1fr)}.settings-grid,.reminder-row__fields{grid-template-columns:1fr}.audit-filters{flex-direction:column;align-items:stretch}.audit-filters .field{width:100%}.audit-filters>span{margin:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{.sidebar,.appbar,.weekbar .iconbtn,.weekbar .btn,.formbar,.row-action,.ledger-card__head .btn,.ledger-card__foot{display:none!important}.appshell__main{margin:0}.page{padding:0}.pagehead{box-shadow:none;-webkit-print-color-adjust:exact;print-color-adjust:exact}.ledger-card,.notes-card{box-shadow:none;border:1px solid var(--line)}.ledger-scroll{overflow:visible}.ledger{min-width:0}}
