:root{--bg:#f5f2ea;--surface:#fff;--surface-2:#faf8f3;--ink:#1e2b24;--muted:#6f7a72;--line:#e5e1d6;--green:#244534;--green-2:#2f5a45;--green-soft:#e6efe9;--gold:#b9944b;--gold-deep:#8f6f2f;--gold-soft:#f7efdb;--red:#a33b3b;--red-soft:#f8e8e6;--blue:#375f7a;--blue-soft:#e8f0f5;--shadow-sm:0 1px 2px #1e2b240f, 0 8px 24px #1e2b240d;--shadow-md:0 12px 40px #1e2b241f;--radius:18px;--radius-sm:12px;--sans:"Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;--serif:Georgia, "Times New Roman", serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--sans);color:var(--ink);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.5}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%}body{background:var(--bg);color:var(--ink);margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}h1{font-family:var(--serif);letter-spacing:-.02em;font-size:clamp(1.6rem,2.4vw,2.1rem);font-weight:600;line-height:1.15}h2{font-size:1.06rem;font-weight:650}h3{font-size:.98rem;font-weight:650}small{font-size:.78rem}.is-negative{color:var(--red)}.is-positive{color:var(--green-2)}.fine-print{color:var(--muted);font-size:.78rem;line-height:1.45}.eyebrow{color:var(--gold-deep);letter-spacing:.13em;text-transform:uppercase;margin-bottom:.35rem;font-size:.72rem;font-weight:700;display:block}.btn{letter-spacing:.01em;white-space:nowrap;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.45rem;font-weight:650;transition:background .16s,border-color .16s,transform .12s,color .16s;display:inline-flex}.btn:active:not(:disabled){transform:translateY(1px)}.btn--sm{padding:.42rem .85rem;font-size:.78rem}.btn--md{padding:.62rem 1.15rem;font-size:.88rem}.btn--lg{padding:.9rem 1.4rem;font-size:.98rem}.btn--block{width:100%}.btn--primary{background:var(--green);color:#fff;border-color:var(--green)}.btn--primary:hover:not(:disabled){background:var(--green-2)}.btn--secondary{background:var(--surface);border-color:var(--line);color:var(--ink)}.btn--secondary:hover:not(:disabled){border-color:var(--green);color:var(--green)}.btn--ghost{color:var(--muted);background:0 0}.btn--ghost:hover:not(:disabled){color:var(--green);background:#24453412}.btn--success{background:var(--green-soft);color:var(--green);border-color:#cfe0d4}.btn--danger{background:var(--red-soft);color:var(--red);border-color:#efcfca}.btn--gold{background:var(--gold-soft);color:var(--gold-deep);border-color:#e7d6ae}.btn__icon{display:inline-flex}.icon-button,.icon-btn{border:1px solid var(--line);background:var(--surface);width:38px;height:38px;color:var(--ink);border-radius:50%;justify-content:center;align-items:center;transition:border-color .16s,color .16s,background .16s;display:inline-flex}.icon-button:hover,.icon-btn:hover{border-color:var(--green);color:var(--green)}.link-button{color:var(--green);text-underline-offset:3px;background:0 0;border:0;padding:.3rem;font-size:.86rem;font-weight:600;text-decoration:underline;display:inline-flex}.text-link{color:var(--green-2);text-underline-offset:3px;white-space:nowrap;font-size:.84rem;font-weight:600;text-decoration:underline}.tag{background:var(--surface-2);border:1px solid var(--line);color:var(--muted);letter-spacing:.02em;white-space:nowrap;border-radius:999px;align-items:center;gap:.35rem;padding:.24rem .6rem;font-size:.7rem;font-weight:650;display:inline-flex}.tag--soft{background:#f1eee5}.tag--success{background:var(--green-soft);color:var(--green);border-color:#cce0d3}.tag--warning{background:var(--gold-soft);color:var(--gold-deep);border-color:#ead9b1}.tag--danger{background:var(--red-soft);color:var(--red);border-color:#ecc9c3}.tag--gold{background:var(--gold-soft);color:var(--gold-deep);border-color:#ead9b1}.state-pill{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);background:#eeece4;border-radius:999px;padding:.16rem .5rem;font-size:.66rem;font-weight:700;display:inline-flex}.state-pill--done{background:var(--green-soft);color:var(--green)}.state-pill--not_done{background:var(--red-soft);color:var(--red)}.state-pill--na{color:#7b7b71;background:#eceae4}.state-pill--paused,.state-pill--transferred{background:var(--gold-soft);color:var(--gold-deep)}.alert{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface-2);flex-direction:column;gap:.18rem;padding:.7rem .85rem;font-size:.84rem;line-height:1.4;display:flex}.alert strong{font-size:.82rem}.alert--danger{background:var(--red-soft);color:#7d2a2a;border-color:#edcac4}.alert--warning{background:var(--gold-soft);color:#6f5419;border-color:#ead8ae}.alert--info{background:var(--blue-soft);color:#2c4e64;border-color:#cadce8}.alert--success{background:var(--green-soft);color:var(--green);border-color:#cce0d3}.notice{border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--line);color:var(--muted);align-items:flex-start;gap:.6rem;padding:.8rem .9rem;font-size:.82rem;line-height:1.45;display:flex}.notice svg{color:var(--gold-deep);flex-shrink:0}.notice strong{color:var(--ink)}.pulse-dot{background:var(--green-2);border-radius:50%;width:7px;height:7px;animation:2s infinite pulse;box-shadow:0 0 #2f5a4566}@keyframes pulse{0%{box-shadow:0 0 #2f5a4559}70%{box-shadow:0 0 0 7px #2f5a4500}to{box-shadow:0 0 #2f5a4500}}.boot{min-height:100vh;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:1.4rem;font-size:.85rem;display:flex}.boot__pulse{border:2px solid var(--line);border-top-color:var(--green);border-radius:50%;width:34px;height:34px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.brand{align-items:center;gap:.6rem;display:inline-flex}.brand__mark{background:var(--green);color:#fff;width:38px;height:38px;font-family:var(--serif);border-radius:12px;justify-content:center;align-items:center;font-size:1.2rem;font-weight:700;display:inline-flex;box-shadow:inset 0 0 0 1px #ffffff24}.brand__text{flex-direction:column;line-height:1.1;display:flex}.brand__text strong{font-family:var(--serif);letter-spacing:.02em;font-size:1rem}.brand__text small{color:var(--muted);letter-spacing:.16em;text-transform:uppercase;font-size:.6rem}.brand--compact .brand__mark{width:32px;height:32px;font-size:1rem}.auth-shell{background:radial-gradient(circle at 15% 10%, #b9944b29, transparent 36%), radial-gradient(circle at 90% 90%, #2445341f, transparent 40%), var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:2rem 1rem;display:flex}.auth-card{background:var(--surface);border:1px solid var(--line);width:min(100%,440px);box-shadow:var(--shadow-md);border-radius:26px;padding:2rem}.auth-card--wide{width:min(100%,620px)}.auth-card--lock{text-align:center;flex-direction:column;align-items:center;gap:.6rem;display:flex}.auth-card--lock .form{text-align:left;width:100%}.auth-brand{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.6rem;display:flex}.auth-card h1{margin-bottom:.5rem}.lead{color:var(--muted);margin-bottom:1.4rem;font-size:.92rem}.auth-foot{color:var(--muted);text-align:center;margin-top:1.2rem;font-size:.8rem}.form{flex-direction:column;gap:.9rem;display:flex}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;display:grid}.form-grid--times{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.pin-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;display:grid}.profile-list{flex-direction:column;gap:.5rem;margin-bottom:1rem;display:flex}.profile-choice{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface);text-align:left;align-items:center;gap:.75rem;width:100%;padding:.65rem .8rem;transition:border-color .16s,background .16s;display:flex}.profile-choice>span:nth-child(2){flex-direction:column;flex:1;display:flex}.profile-choice small{color:var(--muted)}.profile-choice.is-active{border-color:var(--green);background:var(--green-soft)}.avatar{background:var(--green-soft);width:36px;height:36px;color:var(--green);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.avatar--admin{background:var(--gold-soft);color:var(--gold-deep)}.avatar--viewer{background:var(--blue-soft);color:var(--blue)}.avatar--big{width:68px;height:68px;margin-top:.4rem;font-size:1.5rem}.app{flex-direction:column;min-height:100vh;display:flex}.topbar{z-index:30;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);background:#f5f2eae6;position:sticky;top:0}.topbar__inner{justify-content:space-between;align-items:center;gap:1rem;max-width:820px;margin:0 auto;padding:.65rem 1rem;display:flex}.app--wide .topbar__inner{max-width:1240px}.topbar__right{align-items:center;gap:.65rem;display:flex}.clock-display{flex-direction:column;align-items:flex-end;line-height:1.05;display:flex}.clock-display strong{font-variant-numeric:tabular-nums;font-size:.92rem}.clock-display span{color:var(--muted);font-size:.66rem}.sync-badge{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:999px;align-items:center;gap:.38rem;padding:.28rem .6rem;font-size:.66rem;font-weight:600;display:inline-flex}.sync-badge__dot{background:var(--muted);border-radius:50%;width:6px;height:6px}.sync-badge--ok .sync-badge__dot{background:#3d8a5f}.sync-badge--pending .sync-badge__dot{background:var(--gold)}.sync-badge--local .sync-badge__dot{background:#87938a}.user-menu{position:relative}.user-menu summary{cursor:pointer;align-items:center;gap:.5rem;list-style:none;display:flex}.user-menu summary::-webkit-details-marker{display:none}.user-menu__name{flex-direction:column;line-height:1.1;display:flex}.user-menu__name strong{font-size:.78rem}.user-menu__name small{color:var(--muted);font-size:.64rem}.user-menu__panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);width:230px;box-shadow:var(--shadow-md);flex-direction:column;padding:.4rem;display:flex;position:absolute;top:calc(100% + .55rem);right:0}.user-menu__panel>*{text-align:left;background:0 0;border:0;border-radius:9px;align-items:center;gap:.55rem;padding:.55rem .6rem;font-size:.8rem;display:flex}.user-menu__panel>:hover{background:var(--surface-2)}.user-menu__meta{border-bottom:1px solid var(--line);border-radius:0;flex-direction:column;align-items:flex-start;margin-bottom:.25rem}.user-menu__meta span{color:var(--muted);font-size:.72rem}.admin-tabs{scrollbar-width:none;align-items:center;gap:.25rem;max-width:1240px;margin:0 auto;padding:0 1rem .55rem;display:flex;overflow-x:auto}.admin-tabs::-webkit-scrollbar{display:none}.admin-tab{color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;gap:.4rem;padding:.5rem .75rem;font-size:.8rem;font-weight:600;display:inline-flex}.admin-tab.is-active{background:var(--green);color:#fff}.admin-readonly{margin-left:auto}.page{flex:1;width:100%;max-width:780px;margin:0 auto;padding:1.2rem 1rem 8.4rem}.page--wide{max-width:1200px;padding-bottom:3rem}.bottom-nav{z-index:40;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--line);box-shadow:var(--shadow-md);background:#fffffff0;border-radius:999px;gap:.2rem;padding:.35rem;display:flex;position:fixed;bottom:.75rem;left:50%;transform:translate(-50%)}.bottom-nav__item{color:var(--muted);border-radius:999px;flex-direction:column;align-items:center;gap:.12rem;padding:.4rem .9rem;font-size:.62rem;font-weight:600;display:flex}.bottom-nav__item.is-active{background:var(--green-soft);color:var(--green)}.route-marker{display:none}.page-head{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.2rem;display:flex}.page-head p{color:var(--muted);max-width:60ch;margin-top:.3rem;font-size:.86rem}.page-head__actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.home{flex-direction:column;gap:1rem;display:flex}.home-head{justify-content:space-between;align-items:flex-start;gap:1rem;padding:.3rem .2rem .4rem;display:flex}.home-head h1{font-size:clamp(1.9rem,4vw,2.4rem)}.home-head p{color:var(--muted);margin-top:.25rem;font-size:.85rem}.home-head__actions{gap:.4rem;display:flex}.day-card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);border-radius:24px;flex-direction:column;gap:.75rem;padding:1.4rem;display:flex}.day-card__icon{background:var(--gold-soft);width:48px;height:48px;color:var(--gold-deep);border-radius:15px;justify-content:center;align-items:center;display:inline-flex}.day-card h2{font-family:var(--serif);font-size:1.45rem;font-weight:600;line-height:1.2}.day-card p{color:var(--muted);font-size:.88rem;line-height:1.5}.day-card--active{background:radial-gradient(circle at 100% 0, #b9944b24, transparent 45%), var(--surface);border-color:#cfdcd3}.day-card--done{border-color:#cfe0d4}.day-card--closed{background:var(--surface-2)}.day-card__top{justify-content:space-between;align-items:center;display:flex}.day-card__time{font-variant-numeric:tabular-nums;color:var(--muted);font-size:.82rem;font-weight:700}.day-card__next{font-weight:600;color:var(--green)!important;font-size:.85rem!important}.home-alert{border-radius:var(--radius-sm);background:var(--red-soft);color:#7d2a2a;align-items:flex-start;gap:.55rem;padding:.65rem .75rem;font-size:.8rem;line-height:1.4;display:flex}.home-alert--soft{background:var(--gold-soft);color:#6f5419}.home-alert svg{flex-shrink:0;margin-top:1px}.home-summary{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:.5rem;padding:.75rem 0;display:grid}.home-summary>div{flex-direction:column;gap:.1rem;display:flex}.home-summary span{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.68rem}.home-summary strong{font-variant-numeric:tabular-nums;font-size:1.02rem}.home-actions{flex-wrap:wrap;gap:.5rem;display:flex}.home-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;display:grid}.home-tile{border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);text-align:left;flex-direction:column;align-items:flex-start;gap:.2rem;padding:.9rem;transition:border-color .16s,transform .12s;display:flex}.home-tile:hover{border-color:#c9d6cd;transform:translateY(-1px)}.home-tile svg{color:var(--gold-deep);margin-bottom:.2rem}.home-tile span{font-size:.86rem;font-weight:650}.home-tile small{color:var(--muted);font-size:.72rem}.home-foot{text-align:center;color:var(--muted);padding:.4rem 0 .6rem;font-size:.72rem}.empty-day{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.8rem;min-height:55vh;padding:2rem 1rem;display:flex}.empty-day p{color:var(--muted);max-width:40ch}.workday{flex-direction:column;gap:.9rem;display:flex}.workday-head{justify-content:space-between;align-items:flex-start;gap:1rem;padding-top:.2rem;display:flex}.workday-head__sub{color:var(--muted);margin-top:.3rem;font-size:.82rem}.stage-orb{background:var(--green);color:#fff;width:46px;height:46px;font-family:var(--serif);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1.15rem;display:flex;box-shadow:0 0 0 6px #24453414}.steps{background:var(--surface);border:1px solid var(--line);scrollbar-width:none;border-radius:999px;align-items:center;gap:.3rem;margin:0;padding:.55rem .7rem;list-style:none;display:flex;overflow-x:auto}.steps::-webkit-scrollbar{display:none}.steps__item{color:var(--muted);white-space:nowrap;flex:1;align-items:center;gap:.34rem;font-size:.68rem;display:flex}.steps__item:last-child{flex:initial}.steps__dot{background:#eeece4;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:.62rem;font-weight:700;display:inline-flex}.steps__item.is-done .steps__dot{background:var(--green-soft);color:var(--green)}.steps__item.is-current{color:var(--ink);font-weight:650}.steps__item.is-current .steps__dot{background:var(--green);color:#fff}.steps__label{text-overflow:ellipsis;overflow:hidden}.punch-strip{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.punch-chip{background:var(--surface);border:1px solid var(--line);color:var(--muted);font-variant-numeric:tabular-nums;border-radius:999px;align-items:center;gap:.28rem;padding:.28rem .55rem;font-size:.7rem;display:inline-flex}.punch-chip strong{color:var(--ink);font-weight:650}.punch-chip em{color:var(--red);text-transform:uppercase;letter-spacing:.05em;font-size:.62rem;font-style:normal}.punch-strip__link{color:var(--muted);align-items:center;gap:.25rem;margin-left:auto;font-size:.68rem;display:inline-flex}.deadline-banner{border-radius:var(--radius-sm);background:var(--gold-soft);color:#6f5419;border:1px solid #ead8ae;align-items:flex-start;gap:.55rem;padding:.65rem .8rem;font-size:.8rem;line-height:1.4;display:flex}.deadline-banner.is-late{background:var(--red-soft);color:#7d2a2a;border-color:#edcac4}.deadline-banner svg{flex-shrink:0;margin-top:1px}.stage-hint{color:var(--muted);padding:0 .2rem;font-size:.8rem}.stage-groups{flex-direction:column;gap:1.1rem;display:flex}.task-group{flex-direction:column;gap:.55rem;display:flex}.task-group__head{align-items:center;gap:.5rem;padding:0 .2rem;display:flex}.task-group__head h2{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-size:.8rem}.task-group__hint{color:var(--muted);padding:0 .2rem .1rem;font-size:.78rem}.task-group--pending .task-group__head h2{color:var(--gold-deep)}.task-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);gap:.7rem;padding:.85rem;display:flex;box-shadow:0 1px 2px #1e2b2408}.task-card__status{color:#fff;border:1.5px solid #dcd8cd;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;margin-top:1px;display:flex}.task-card--done .task-card__status{background:var(--green);border-color:var(--green)}.task-card--paused .task-card__status{background:var(--gold);border-color:var(--gold)}.task-card--not_done .task-card__status{background:var(--red);border-color:var(--red)}.task-card--not_done{background:#fffbfa}.task-card--transferred{background:#fffdf7;border-color:#e4d3aa}.task-card__content{flex-direction:column;flex:1;gap:.45rem;min-width:0;display:flex}.task-card__head h3{font-size:.94rem;line-height:1.3}.task-card--done .task-card__head h3{color:var(--muted);-webkit-text-decoration:line-through #c3cec6;text-decoration:line-through #c3cec6}.task-card__meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.3rem .65rem;margin-top:.25rem;font-size:.7rem;display:flex}.meta-proof{color:var(--gold-deep);font-weight:650}.task-card__description{color:var(--muted);font-size:.8rem;line-height:1.45}.task-card__original{background:var(--gold-soft);color:#6f5419;border-radius:9px;padding:.45rem .6rem;font-size:.76rem;line-height:1.4}.task-card__hint{color:var(--muted);font-size:.74rem}.task-card__hint--warning{color:var(--gold-deep)}.task-card__evidence{color:var(--green-2);align-items:center;gap:.3rem;font-size:.72rem;display:inline-flex}.task-card__actions{flex-wrap:wrap;gap:.35rem;margin-top:.2rem;display:flex}.lunch-card{text-align:center;background:radial-gradient(circle at 50% 0, #b9944b2e, transparent 55%), var(--surface);border:1px solid var(--line);border-radius:24px;flex-direction:column;align-items:center;gap:.5rem;padding:2.6rem 1rem;display:flex}.lunch-card svg{color:var(--gold-deep)}.lunch-card h2{font-family:var(--serif);font-size:1.4rem}.lunch-card p{color:var(--muted);font-size:.86rem}.stage-action{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line);box-shadow:var(--shadow-sm);background:#f5f2eaf0;border-radius:20px;flex-direction:column;gap:.4rem;margin-top:.5rem;padding:.75rem;display:flex;position:sticky;bottom:82px}.stage-action__hint{text-align:center;color:var(--muted);font-size:.7rem}.attendance-fab{z-index:35;border:1px solid var(--line);background:var(--surface);color:var(--green);box-shadow:var(--shadow-md);border-radius:999px;align-items:center;gap:.4rem;padding:.55rem .9rem;font-size:.76rem;font-weight:650;display:inline-flex;position:fixed;bottom:168px;right:max(1rem,50vw - 390px + 1rem)}.attendance-fab strong{font-variant-numeric:tabular-nums}.attendance-fab.is-running{background:var(--red);border-color:var(--red);color:#fff}.closed-day{flex-direction:column;gap:1rem;padding-bottom:1rem;display:flex}.closed-hero{text-align:center;background:radial-gradient(circle at 50% 0, #b9944b33, transparent 55%), var(--surface);border:1px solid var(--line);border-radius:26px;flex-direction:column;align-items:center;gap:.5rem;padding:2rem 1rem 1.4rem;display:flex}.closed-hero__icon{background:var(--green);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:62px;height:62px;margin-bottom:.3rem;display:flex}.closed-hero h1{font-size:1.7rem}.closed-hero p{color:var(--muted);font-size:.86rem}.summary-grid{grid-template-columns:repeat(3,1fr);gap:.55rem;display:grid}.summary-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);flex-direction:column;gap:.15rem;padding:.75rem;display:flex}.summary-card span{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.68rem}.summary-card strong{font-variant-numeric:tabular-nums;font-size:1.02rem}.closed-actions{flex-direction:column;gap:.5rem;display:flex}.closed-actions .btn{justify-content:flex-start}.modal-backdrop{z-index:80;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#16201a73;justify-content:center;align-items:flex-end;padding:0;display:flex;position:fixed;inset:0}.modal{background:var(--surface);width:min(100%,520px);max-height:92vh;box-shadow:var(--shadow-md);border-radius:24px 24px 0 0;flex-direction:column;animation:.2s modalIn;display:flex}.modal--wide{width:min(100%,720px)}@keyframes modalIn{0%{opacity:.6;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.modal__head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.15rem 1.15rem .7rem;display:flex}.modal__head h2{font-family:var(--serif);font-size:1.25rem;font-weight:600}.modal__head p{color:var(--muted);margin-top:.25rem;font-size:.8rem}.modal__body{flex-direction:column;gap:.75rem;padding:1rem 1.15rem;display:flex;overflow-y:auto}.modal__foot{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:flex-end;gap:.5rem;padding:.85rem 1.15rem 1.15rem;display:flex}.field{flex-direction:column;gap:.3rem;font-size:.8rem;font-weight:600;display:flex}.field>span{color:var(--ink)}.field small{color:var(--muted);font-weight:400}.field small small,.field>span small{color:var(--muted);font-weight:500}.field input,.field select,.field textarea{border:1px solid var(--line);background:var(--surface);border-radius:11px;outline:none;width:100%;padding:.6rem .7rem;font-size:.88rem;font-weight:400;transition:border-color .16s,box-shadow .16s}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--green-2);box-shadow:0 0 0 3px #2f5a451f}.field textarea{resize:vertical;min-height:64px}.field--inline{flex-direction:row;align-items:center;gap:.5rem;font-weight:600}.field--inline>span{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);white-space:nowrap;font-size:.72rem}.field--inline input,.field--inline select{width:auto;min-width:120px;padding:.42rem .6rem;font-size:.8rem}.field--grow{flex:1}.field--grow input{width:100%}.field--full{grid-column:1/-1}.field-label{font-size:.8rem;font-weight:600}.quick-reasons{flex-wrap:wrap;gap:.35rem;display:flex}.quick-chip{border:1px solid var(--line);background:var(--surface-2);color:var(--muted);border-radius:999px;padding:.34rem .65rem;font-size:.74rem;transition:all .14s}.quick-chip:hover{border-color:var(--green);color:var(--green)}.quick-chip.is-active{background:var(--green);border-color:var(--green);color:#fff}.pending-list{border:1px solid var(--line);border-radius:var(--radius-sm);flex-direction:column;display:flex;overflow:hidden}.pending-list__item{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .65rem;font-size:.8rem;display:flex}.pending-list__item:last-child{border-bottom:0}.final-list{flex-direction:column;gap:.6rem;display:flex}.final-list__item{border:1px solid var(--line);border-radius:var(--radius-sm);flex-direction:column;gap:.4rem;padding:.7rem;display:flex}.final-list__head{justify-content:space-between;align-items:center;gap:.5rem;font-size:.84rem;display:flex}.final-list__hint{color:var(--muted);font-size:.72rem}.final-list textarea{border:1px solid var(--line);resize:vertical;border-radius:9px;width:100%;padding:.5rem;font-size:.82rem}.report{flex-direction:column;gap:1rem;display:flex}.report-nav{align-items:flex-start;gap:.7rem;display:flex}.report-nav h1{font-size:1.35rem}.report-nav p{color:var(--muted);margin-top:.15rem;font-size:.8rem}.report-actions{flex-wrap:wrap;gap:.45rem;display:flex}.report-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.55rem;display:grid}.metric{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);flex-direction:column;gap:.15rem;padding:.7rem .8rem;display:flex}.metric span{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.66rem}.metric strong{font-variant-numeric:tabular-nums;font-size:1rem}.metric__small{font-weight:600;font-size:.78rem!important}.report-section{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:.6rem;padding:1rem;display:flex}.report-section>h2{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-size:.78rem}.alert-list{flex-direction:column;gap:.5rem;display:flex}.report-table{flex-direction:column;gap:.1rem;display:flex}.report-table__row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.55rem 0;display:flex}.report-table__row:last-child{border-bottom:0}.report-table__row>div:first-child{flex-direction:column;gap:.1rem;font-size:.82rem;display:flex}.report-table__row span{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.74rem}.report-table__right{flex-shrink:0;align-items:center;gap:.4rem;display:flex}.report-note{color:var(--gold-deep)!important}.report-tasks{flex-direction:column;gap:.55rem;display:flex}.report-task{border:1px solid var(--line);border-radius:var(--radius-sm);flex-direction:column;gap:.3rem;padding:.65rem .75rem;display:flex}.report-task__head{justify-content:space-between;align-items:center;gap:.5rem;font-size:.84rem;display:flex}.report-task__meta{color:var(--muted);font-size:.7rem}.report-task__events{flex-direction:column;gap:.2rem;margin:.2rem 0 0;padding:0;list-style:none;display:flex}.report-task__events li{color:var(--muted);gap:.5rem;font-size:.74rem;display:flex}.report-task__events li span:first-child{font-variant-numeric:tabular-nums;color:var(--ink);min-width:40px;font-weight:600}.evidence-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.5rem;display:grid}.evidence-thumb{color:var(--muted);flex-direction:column;gap:.25rem;font-size:.66rem;display:flex}.evidence-thumb img{aspect-ratio:1;object-fit:cover;border:1px solid var(--line);border-radius:10px;width:100%}.reports-list,.hours,.privacy,.adminPage{flex-direction:column;gap:1rem;display:flex}.filter-row{align-items:center;gap:.75rem;display:flex}.filter-row--wrap{flex-wrap:wrap}.filter-row .fine-print{margin-left:auto}.empty-inline{background:var(--surface);border:1px dashed var(--line);border-radius:var(--radius);color:var(--muted);text-align:center;flex-direction:column;align-items:center;gap:.5rem;padding:2.2rem 1rem;font-size:.84rem;display:flex}.report-cards{flex-direction:column;gap:.55rem;display:flex}.report-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:.45rem;padding:.9rem;transition:border-color .16s,transform .12s;display:flex}a.report-card:hover{border-color:#c9d6cd;transform:translateY(-1px)}.report-card__top{justify-content:space-between;align-items:flex-start;gap:.6rem;display:flex}.report-card__top>div{flex-direction:column;gap:.1rem;display:flex}.report-card__top strong{font-size:.9rem}.report-card__top span{color:var(--muted);font-size:.74rem}.report-card__stats{color:var(--muted);flex-wrap:wrap;gap:.3rem .8rem;font-size:.76rem;display:flex}.report-card__cta{color:var(--green-2);align-items:center;gap:.2rem;font-size:.76rem;font-weight:650;display:inline-flex}.report-card__actions{flex-wrap:wrap;align-items:center;gap:.4rem;padding-top:.2rem;display:flex}.report-card__actions .text-link{margin-right:auto}.segmented{background:#eae6dc;border-radius:999px;align-self:flex-start;gap:.15rem;padding:.25rem;display:inline-flex}.segmented--wide{align-self:stretch;overflow-x:auto}.segmented button{color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:999px;padding:.42rem .9rem;font-size:.78rem;font-weight:650}.segmented button.is-active{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #1e2b241f}.period-nav{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:.75rem;padding:.55rem .7rem;display:flex}.period-nav--inline{flex-wrap:wrap;justify-content:flex-start}.period-nav--inline input[type=date]{border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:.4rem .55rem;font-size:.8rem}.period-nav__label{text-align:center;flex-direction:column;align-items:center;gap:.05rem;display:flex}.period-nav__label strong{font-size:.88rem}.period-nav__label span{color:var(--muted);font-size:.68rem}.hours-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;display:flex;overflow:hidden}.hours-row{border-bottom:1px solid var(--line);align-items:center;gap:.6rem;padding:.6rem .8rem;font-size:.8rem;display:flex}.hours-row:last-child{border-bottom:0}.hours-row__date{flex-direction:column;min-width:92px;display:flex}.hours-row__date strong{font-size:.82rem}.hours-row__date span{color:var(--muted);font-size:.67rem}.hours-row__numbers{text-align:right;font-variant-numeric:tabular-nums;flex-direction:column;margin-left:auto;display:flex}.hours-row__numbers span:first-child{font-weight:650}.hours-row__balance{text-align:right;font-variant-numeric:tabular-nums;min-width:60px;font-weight:650}.hours-row__empty{text-align:center;width:38px;color:var(--muted)}.month-weeks{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:.35rem;padding:.85rem;display:flex}.month-weeks h2{text-transform:uppercase;letter-spacing:.09em;color:var(--muted);margin-bottom:.25rem;font-size:.78rem}.month-week{background:var(--surface-2);text-align:left;border:0;border-radius:9px;align-items:center;gap:.75rem;padding:.5rem .6rem;font-size:.78rem;display:flex}.month-week span:first-child{flex:1}.month-week strong{font-variant-numeric:tabular-nums}.month-week span:last-child{text-align:right;min-width:58px;font-weight:650}.period-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.hours-note{text-align:center}.privacy-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);gap:.8rem;padding:1rem;display:flex}.privacy-card>svg{color:var(--gold-deep);flex-shrink:0;margin-top:2px}.privacy-card h2{font-family:var(--serif);margin-bottom:.35rem;font-size:1.08rem;font-weight:600}.privacy-card p{color:var(--muted);margin-bottom:.45rem;font-size:.83rem;line-height:1.5}.privacy-card p:last-child{margin-bottom:0}.admin-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem;display:grid}.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:.1rem;padding:.8rem;display:flex}.stat-card__icon{background:var(--surface-2);width:32px;height:32px;color:var(--green);border-radius:10px;justify-content:center;align-items:center;margin-bottom:.3rem;display:inline-flex}.stat-card strong{font-family:var(--serif);font-size:1.5rem;font-weight:600;line-height:1}.stat-card span:last-child{color:var(--muted);font-size:.7rem}.stat-card.is-warning{background:#fffdf7;border-color:#ead8ae}.stat-card.is-warning .stat-card__icon{background:var(--gold-soft);color:var(--gold-deep)}.admin-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:.7rem;padding:1rem;display:flex}.panel__head{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.panel__head h2{font-size:.95rem}.panel__head p{margin-top:.15rem}.panel-note{background:var(--surface-2);color:var(--muted);border-radius:10px;align-items:flex-start;gap:.5rem;padding:.6rem .7rem;font-size:.76rem;line-height:1.4;display:flex}.panel-note svg{color:var(--gold-deep);flex-shrink:0}.admin-list{flex-direction:column;display:flex}.admin-list__item{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:.75rem;padding:.6rem 0;display:flex}.admin-list__item:last-child{border-bottom:0}.admin-list__item--stack{align-items:flex-start}.admin-list__item>div:first-child{flex-direction:column;gap:.12rem;min-width:0;display:flex}.admin-list__item strong{font-size:.84rem}.admin-list__item span{color:var(--muted);font-size:.74rem;line-height:1.35}.admin-list__right{flex-shrink:0;align-items:center;gap:.35rem;display:flex}.quick-links{grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;display:grid}.quick-link{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--green);align-items:center;gap:.45rem;padding:.7rem .8rem;font-size:.8rem;font-weight:600;display:flex}.quick-link:hover{border-color:var(--green)}.stack{flex-direction:column;gap:.75rem;display:flex}.form-row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.form-row--checks{gap:.75rem 1rem}.form-row--end{justify-content:flex-end;margin-top:.4rem}.day-toggles{flex-wrap:wrap;gap:.3rem;display:flex}.day-toggles button{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:8px;padding:.3rem .5rem;font-size:.72rem;font-weight:600}.day-toggles button.is-active{background:var(--green);border-color:var(--green);color:#fff}.check{align-items:center;gap:.4rem;font-size:.8rem;font-weight:500;display:inline-flex}.check input{accent-color:var(--green)}.switch{color:var(--muted);align-items:center;gap:.45rem;font-size:.78rem;display:inline-flex}.switch input{accent-color:var(--green)}.config-footer{border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe6;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1rem;display:flex;position:sticky;bottom:.75rem}.config-footer>div{gap:.45rem;display:flex}.task-editor{flex-direction:column;gap:.4rem;display:flex}.task-editor__item{border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}.task-editor__item.is-inactive{opacity:.72}.task-editor__item.is-open{border-color:#c9d6cd}.task-editor__head{background:var(--surface);text-align:left;border:0;align-items:center;gap:.6rem;width:100%;padding:.65rem .75rem;display:flex}.task-editor__head>span:first-child{flex-direction:column;flex:1;min-width:0;display:flex}.task-editor__head strong{font-size:.85rem}.task-editor__head small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;overflow:hidden}.task-editor__body{background:var(--surface-2);border-top:1px solid var(--line);flex-direction:column;gap:.7rem;padding:.8rem;display:flex}.task-editor__row{align-items:stretch;gap:.25rem;display:flex}.task-editor__row .task-editor__head{flex:1;width:auto}.task-editor__actions{background:var(--surface);align-items:center;gap:.2rem;padding:0 .4rem;display:flex}.task-editor__actions .icon-btn{width:30px;height:30px;font-size:.9rem;line-height:1}.icon-btn:disabled{opacity:.35;cursor:not-allowed}.task-blocks{flex-direction:column;gap:1rem;display:flex}.task-block{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);overflow:hidden}.task-block__head{background:var(--surface-2);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:.6rem;padding:.55rem .75rem;display:flex}.task-block__toggle{color:var(--ink);text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:.5rem;padding:0;display:flex}.task-block__toggle>span{flex-direction:column;display:flex}.task-block__toggle strong{font-size:.86rem}.task-block__toggle small{color:var(--muted);font-size:.7rem}.task-block__toggle svg{transition:transform .16s;transform:rotate(90deg)}.task-block.is-collapsed .task-block__toggle svg{transform:rotate(0)}.task-block>.task-editor{padding:.55rem}.task-block>.fine-print{padding:.9rem}.calendar-toolbar{align-items:center;gap:.6rem;display:flex}.calendar-toolbar strong{text-align:center;min-width:150px;font-family:var(--serif);text-transform:capitalize;font-size:1.1rem}.calendar{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.calendar__weekdays,.calendar__grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.calendar__weekdays span{text-align:center;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);padding:.5rem .2rem;font-size:.66rem;font-weight:700}.calendar__cell{border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface);text-align:left;flex-direction:column;align-items:flex-start;gap:.2rem;min-height:70px;padding:.35rem;display:flex}.calendar__cell:nth-child(7n){border-right:0}.calendar__cell.is-empty{background:var(--surface-2)}.calendar__cell.is-today .calendar__day{background:var(--green);color:#fff}.calendar__cell.is-closed{background:#fbf1ef}.calendar__cell.is-open{background:var(--green-soft)}.calendar__cell.is-reduced{background:var(--gold-soft)}.calendar__cell.is-undecided{background:#f4f1e8}.calendar__day{border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:.72rem;font-weight:650;display:inline-flex}.calendar__label{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.6rem;line-height:1.2;display:-webkit-box;overflow:hidden}.calendar-legend{color:var(--muted);flex-wrap:wrap;gap:1rem;font-size:.72rem;display:flex}.calendar-legend span{align-items:center;gap:.35rem;display:inline-flex}.legend-dot{border-radius:3px;width:9px;height:9px;display:inline-block}.legend-dot--closed{background:#e5b9b1}.legend-dot--open{background:#b9d3c2}.legend-dot--reduced{background:#e6cf9b}.legend-dot--undecided{background:#d8d2c2}.history-list{flex-direction:column;gap:.5rem;display:flex}.history-row{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);align-items:flex-start;gap:1rem;padding:.9rem;display:flex}.history-row__main{flex-direction:column;flex:1;gap:.3rem;min-width:0;display:flex}.history-row__title{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.history-row__title strong{font-size:.86rem}.history-row__meta{color:var(--muted);flex-wrap:wrap;gap:.25rem .75rem;font-size:.74rem;display:flex}.history-row__punches{flex-wrap:wrap;gap:.3rem;display:flex}.history-row__punches span{color:var(--muted);background:var(--surface-2);font-variant-numeric:tabular-nums;border-radius:6px;padding:.14rem .4rem;font-size:.68rem}.history-row__actions{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:.4rem;display:flex}.history-row__actions select{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:8px;padding:.32rem .45rem;font-size:.72rem}@media (width>=720px){.modal-backdrop{align-items:center;padding:1.5rem}.modal{border-radius:24px}.stage-action{bottom:1rem}.attendance-fab{bottom:96px}}@media (width<=900px){.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-grid{grid-template-columns:1fr}.quick-links{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=680px){.page{padding-left:.85rem;padding-right:.85rem}.topbar__inner{padding:.55rem .85rem}.user-menu__name,.clock-display span{display:none}.sync-badge{text-overflow:ellipsis;white-space:nowrap;max-width:120px;overflow:hidden}.page-head{flex-direction:column}.page-head__actions{justify-content:flex-start}.form-grid,.pin-grid{grid-template-columns:1fr}.summary-grid{grid-template-columns:repeat(3,1fr)}.summary-card{padding:.6rem}.summary-card strong{font-size:.9rem}.steps__label{display:none}.steps__item{flex:1;justify-content:center}.steps__item:last-child{flex:1}.admin-tab{padding:.42rem .6rem;font-size:.74rem}.admin-tab svg{display:none}.history-row{flex-direction:column}.history-row__actions{flex-direction:row;justify-content:space-between;align-items:center;width:100%}.filter-row{flex-wrap:wrap}.calendar__cell{min-height:58px;padding:.25rem}.calendar__label{-webkit-line-clamp:1;font-size:.55rem}.config-footer{position:static}.period-nav__label strong{font-size:.8rem}.hour-row{flex-wrap:wrap}}@media (width<=420px){.auth-card{padding:1.4rem}.home-grid{grid-template-columns:1fr 1fr}.home-summary{grid-template-columns:repeat(3,1fr)}.admin-stats{grid-template-columns:1fr 1fr}.quick-links{grid-template-columns:1fr}.task-card__actions .btn{flex:1}.summary-grid{grid-template-columns:1fr 1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{.topbar,.bottom-nav,.stage-action,.attendance-fab,.report-actions{display:none!important}.page{max-width:none;padding:0}body{background:#fff}.report-section,.metric,.report-task{break-inside:avoid}}
