:root{font-family:Noto Sans JP,Hiragino Kaku Gothic ProN,Yu Gothic,system-ui,sans-serif;color:#102f47;background:#f7f3eb;font-synthesis:none;text-rendering:optimizeLegibility;--color-ink: #102f47;--color-ink-soft: #526677;--color-paper: #f7f3eb;--color-paper-raised: #fffdf8;--color-brand-red: #ef0017;--color-red: #d40016;--color-red-dark: #c60014;--color-rule: #d6cec1;--color-rule-dark: #a89f92;--color-success: #1e684d;--color-error-bg: #fff0f0;--font-serif: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;--page-width: 720px}*{box-sizing:border-box}html{min-width:320px;background:var(--color-paper)}body{margin:0;min-width:320px;min-height:100vh;background:var(--color-paper)}body:before{position:fixed;z-index:20;inset:0 auto 0 0;width:7px;background:var(--color-brand-red);content:""}button,input,select,textarea{color:inherit;font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}.skip-link{position:fixed;z-index:100;top:8px;left:16px;padding:10px 14px;background:var(--color-ink);color:#fff;font-size:.8rem;font-weight:700;text-decoration:none;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}:focus-visible{outline:3px solid color-mix(in srgb,var(--color-red) 70%,transparent);outline-offset:3px}.page{width:min(100%,var(--page-width));min-height:100vh;margin:0 auto;padding:28px 24px 72px 31px}.page--login{display:flex;flex-direction:column}.brand-header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:clamp(72px,15vh,132px);padding-bottom:17px;border-bottom:1px solid var(--color-ink)}.brand-header--compact{margin-bottom:20px}.brand-logo{display:block;width:min(220px,62vw);height:auto}.brand-product{flex:0 0 auto;padding-bottom:2px;color:var(--color-ink-soft);font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;writing-mode:vertical-rl}.page-nav{margin-bottom:48px}.text-link{display:inline-flex;align-items:center;min-height:44px;gap:9px;color:var(--color-ink-soft);font-size:.84rem;font-weight:700;letter-spacing:.08em;text-decoration:none}.text-link:hover{color:var(--color-red)}.eyebrow{display:flex;align-items:center;gap:11px;margin:0 0 14px;color:var(--color-red);font-size:.7rem;font-weight:800;letter-spacing:.2em;line-height:1.5;text-transform:uppercase}.eyebrow:before{width:25px;height:2px;background:currentColor;content:""}h1,h2,p{margin-top:0}h1,h2{font-family:var(--font-serif);font-weight:700}h1{margin-bottom:18px;font-size:clamp(2rem,8vw,3.35rem);letter-spacing:-.045em;line-height:1.32}h2{margin-bottom:0;font-size:1.3rem;letter-spacing:.01em}p{line-height:1.8}.login-intro{max-width:520px;margin-bottom:43px}.login-intro p:last-child,.home-hero>p:last-child,.completion-page>p:not(.eyebrow){color:var(--color-ink-soft);font-size:.9rem}.login-form{width:100%;max-width:520px;margin-top:auto}.home-hero{margin-bottom:49px}.home-hero h1{margin:8px 0 6px}.date-display{margin-bottom:11px;color:var(--color-ink-soft);font-family:var(--font-serif);font-size:.84rem;font-weight:600;letter-spacing:.08em}.page-title{margin-bottom:38px}.form-stack{display:grid;gap:27px}.field{display:grid;gap:9px}.field__label{color:var(--color-ink-soft);font-size:.75rem;font-weight:700;letter-spacing:.08em}.field__control{width:100%;min-height:56px;padding:13px 14px;border:1px solid var(--color-rule-dark);border-radius:0;background:color-mix(in srgb,var(--color-paper-raised) 78%,transparent);font-size:1rem;transition:border-color .15s ease,background-color .15s ease}.field__control:hover{border-color:var(--color-ink)}.field__control:focus{border-color:var(--color-red);background:var(--color-paper-raised);outline:none}.field__control:focus-visible{outline:3px solid color-mix(in srgb,var(--color-red) 70%,transparent);outline-offset:3px}.field__control::placeholder{color:#8e968e}.field__select{appearance:auto}.field__hint,.signature-hint{color:var(--color-ink-soft);font-size:.74rem;line-height:1.6}.field-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.worked-total{display:flex;align-items:baseline;justify-content:space-between;gap:24px;padding:22px 0 20px;border-top:1px solid var(--color-ink);border-bottom:1px solid var(--color-rule)}.worked-total span{color:var(--color-ink-soft);font-size:.76rem;font-weight:700;letter-spacing:.08em}.worked-total strong{font-family:var(--font-serif);font-size:1.55rem}.button{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:13px 22px;border:1px solid transparent;border-radius:0;font-size:.88rem;font-weight:800;letter-spacing:.06em;line-height:1.4;text-align:center;text-decoration:none;cursor:pointer;touch-action:manipulation;transition:background-color .15s ease,border-color .15s ease,color .15s ease,transform .15s ease}.button:hover:not(:disabled){transform:translateY(-1px)}.button:active:not(:disabled){transform:translateY(0)}.button:disabled{cursor:not-allowed;opacity:.48}.button--full{width:100%}.button--primary{border-color:var(--color-red);background:var(--color-red);color:#fff}.button--primary:hover:not(:disabled){border-color:var(--color-red-dark);background:var(--color-red-dark)}.button--secondary{border-color:var(--color-ink);background:transparent;color:var(--color-ink)}.button--secondary:hover:not(:disabled){background:var(--color-ink);color:#fff}.button--quiet{min-height:42px;padding:8px 0;border-bottom-color:var(--color-ink);background:transparent;color:var(--color-ink)}.button--quiet:hover:not(:disabled){border-bottom-color:var(--color-red);color:var(--color-red)}.form-actions,.primary-actions{display:grid;gap:12px}.primary-actions{margin-bottom:67px}.form-error{margin:0;padding:13px 15px;border-left:3px solid var(--color-red);background:var(--color-error-bg);color:#98101c;font-size:.82rem;line-height:1.65}.ledger-section{border-top:1px solid var(--color-ink);padding-top:18px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:23px}.section-count{display:grid;width:32px;height:32px;place-items:center;border:1px solid var(--color-rule-dark);border-radius:50%;color:var(--color-ink-soft);font-size:.72rem;font-weight:800}.empty-message,.loading-text{margin:0;padding:25px 0;border-bottom:1px solid var(--color-rule);color:var(--color-ink-soft);font-size:.84rem}.record-list,.history-list{border-top:1px solid var(--color-rule)}.record-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 20px;padding:21px 0;border-bottom:1px solid var(--color-rule)}.record-row>div:first-child{display:grid;gap:5px}.record-row>div:first-child span{color:var(--color-ink-soft);font-size:.8rem}.record-row .button{grid-column:1 / -1;justify-self:start}.status-badge{display:inline-flex;align-items:center;align-self:start;gap:7px;color:var(--color-ink-soft);font-size:.68rem;font-weight:800;letter-spacing:.06em;white-space:nowrap}.status-badge:before{width:7px;height:7px;border-radius:50%;background:currentColor;content:""}.status-badge--done{color:var(--color-success)}.status-badge--pending{color:#985400}.status-badge--muted{color:#7b7b76;text-decoration:line-through}.attendance-summary{margin:0 0 41px;padding:22px 0 4px;border-top:1px solid var(--color-ink);border-bottom:1px solid var(--color-rule)}.summary-grid,.compact-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0}.summary-grid>div{padding:0 0 21px}.summary-grid dt,.compact-summary dt{margin-bottom:5px;color:var(--color-ink-soft);font-size:.68rem;font-weight:700;letter-spacing:.08em}.summary-grid dd,.compact-summary dd{margin:0;font-family:var(--font-serif);font-size:1.14rem;font-weight:700}.signature-form{gap:31px}.signature-control{display:grid;gap:10px;margin-top:9px}.signature-canvas{display:block;width:100%;height:230px;border:1px solid var(--color-ink);background:var(--color-paper-raised);cursor:crosshair;touch-action:none}.completion-page{padding-top:28px}.completion-page h1{margin-bottom:15px}.completion-page .button{margin-top:36px}.completion-mark{display:grid;width:72px;height:72px;margin:56px 0 33px;place-items:center;border:2px solid var(--color-success);border-radius:50%;color:var(--color-success);font-family:var(--font-serif);font-size:2rem}.history-list{margin-top:27px}.history-entry{padding:25px 0 29px;border-bottom:1px solid var(--color-rule)}.history-entry>header{display:flex;align-items:flex-start;justify-content:space-between;gap:17px;margin-bottom:23px}.history-entry time{font-family:var(--font-serif);font-size:1.2rem;font-weight:700}.version-label{margin-left:10px;color:var(--color-ink-soft);font-size:.66rem;font-weight:700}.compact-summary{grid-template-columns:repeat(3,minmax(0,1fr));padding:17px 0;border-top:1px solid var(--color-rule);border-bottom:1px solid var(--color-rule)}.compact-summary dd{font-size:1rem}.signer-meta{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin:17px 0 5px;color:var(--color-ink-soft);font-size:.76rem}.signer-meta strong{color:var(--color-ink);font-size:.85rem}.history-entry .button--quiet{margin-top:12px}.admin-shell{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:100vh;background:var(--color-paper)}.admin-sidebar{position:sticky;top:0;display:flex;flex-direction:column;align-self:start;height:100vh;padding:32px 27px 27px 34px;border-right:1px solid var(--color-rule);background:var(--color-paper-raised)}.admin-logo{width:154px;max-width:100%;height:auto}.admin-product{margin:13px 0 41px;color:var(--color-ink-soft);font-size:.65rem;font-weight:700;letter-spacing:.12em;line-height:1.6}.admin-nav{display:grid;gap:3px}.admin-nav__link{display:flex;min-height:42px;align-items:center;padding:8px 11px;border-left:2px solid transparent;color:var(--color-ink-soft);font-size:.8rem;font-weight:700;letter-spacing:.05em;text-decoration:none}.admin-nav__link:hover,.admin-nav__link.is-active{border-left-color:var(--color-red);color:var(--color-ink)}.admin-nav__link.is-active{background:#f4eee5}.admin-identity{display:grid;gap:6px;margin-top:auto;padding-top:20px;border-top:1px solid var(--color-rule)}.admin-identity>span{font-family:var(--font-serif);font-size:.86rem;font-weight:700}.admin-identity .button{justify-self:start}.admin-main{width:100%;max-width:1440px;min-width:0;padding:48px clamp(26px,5vw,78px) 86px}.admin-page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:42px;margin-bottom:45px;padding-bottom:26px;border-bottom:1px solid var(--color-ink)}.admin-page-header h1{margin:0;font-size:clamp(2rem,4vw,3rem);text-wrap:balance}.admin-page-header>p{max-width:440px;margin-bottom:4px;color:var(--color-ink-soft);font-size:.8rem;line-height:1.8}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--color-rule);border-left:1px solid var(--color-rule)}.metric{min-height:180px;padding:25px 24px;border-right:1px solid var(--color-rule);border-bottom:1px solid var(--color-rule)}.metric span{color:var(--color-ink-soft);font-size:.72rem;font-weight:700;letter-spacing:.08em}.metric strong{display:block;margin-top:50px;font-family:var(--font-serif);font-size:clamp(1.8rem,4vw,3rem)}.admin-panel,.settings-section{margin-bottom:42px;padding:25px 0 30px;border-top:1px solid var(--color-rule);border-bottom:1px solid var(--color-rule)}.admin-panel h2,.settings-section h2,.version-chain h2,.signature-view h2{margin-bottom:24px;font-size:1.12rem}.admin-inline-form{display:grid;grid-template-columns:minmax(170px,.8fr) minmax(220px,1.4fr) auto;align-items:end;gap:14px}.admin-inline-form--four{grid-template-columns:repeat(4,minmax(150px,1fr))}.admin-inline-form--four .button{justify-self:start}.admin-table-wrap{width:100%;overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;background:transparent;font-size:.8rem}.admin-table th{padding:11px 12px;border-bottom:1px solid var(--color-ink);color:var(--color-ink-soft);font-size:.66rem;font-weight:800;letter-spacing:.08em;text-align:left;white-space:nowrap}.admin-table td{min-width:90px;padding:16px 12px;border-bottom:1px solid var(--color-rule);vertical-align:middle;font-variant-numeric:tabular-nums}.admin-table td:first-child,.admin-table th:first-child{padding-left:0}.admin-table td:last-child,.admin-table th:last-child{padding-right:0}.admin-table td strong,.admin-table td small{display:block}.admin-table td small{margin-top:4px;color:var(--color-ink-soft);font-size:.68rem}.admin-table .button--quiet{min-height:36px;margin:0;font-size:.72rem}.table-actions{display:flex;flex-wrap:wrap;gap:6px 13px}.table-link{border-bottom:1px solid currentColor;font-weight:700;text-decoration:none;white-space:nowrap}.table-link:hover{color:var(--color-red)}.mono-cell{max-width:190px;overflow:hidden;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.68rem;text-overflow:ellipsis}.admin-action-bar{display:grid;grid-template-columns:minmax(220px,360px) auto auto;align-items:end;gap:14px;margin:-20px 0 34px;padding:20px;border-left:3px solid var(--color-red);background:var(--color-paper-raised)}.filter-bar{display:grid;grid-template-columns:minmax(180px,1.4fr) repeat(4,minmax(140px,.8fr));gap:14px;margin-bottom:32px;padding-bottom:25px;border-bottom:1px solid var(--color-rule)}.immutable-notice{display:flex;align-items:baseline;gap:23px;margin-bottom:28px;padding:16px 18px;border-left:3px solid var(--color-success);background:#edf5ef}.immutable-notice strong{flex:0 0 auto;color:var(--color-success);font-size:.76rem;letter-spacing:.08em}.immutable-notice span{color:var(--color-ink-soft);font-size:.76rem}.admin-back{margin-bottom:24px}.detail-ledger{padding:28px 0;border-top:1px solid var(--color-ink);border-bottom:1px solid var(--color-rule)}.detail-ledger>header{display:flex;align-items:flex-start;justify-content:space-between;gap:30px;margin-bottom:31px}.detail-ledger header span,.detail-ledger header small{color:var(--color-ink-soft);font-size:.72rem}.detail-ledger header h2{margin:7px 0 4px;font-size:1.45rem}.detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;border-top:1px solid var(--color-rule);border-left:1px solid var(--color-rule)}.detail-grid>div{min-height:92px;padding:17px;border-right:1px solid var(--color-rule);border-bottom:1px solid var(--color-rule)}.detail-grid dt{margin-bottom:9px;color:var(--color-ink-soft);font-size:.66rem;font-weight:700;letter-spacing:.08em}.detail-grid dd{margin:0;font-family:var(--font-serif);font-size:1rem;font-weight:700}.signature-view,.version-chain{margin-top:47px}.signature-view img{display:block;width:min(100%,560px);min-height:190px;object-fit:contain;border:1px solid var(--color-rule-dark);background:var(--color-paper-raised)}.signature-view p{margin-top:10px;color:var(--color-ink-soft);font-size:.72rem}.version-chain ol{margin:0;padding:0;border-top:1px solid var(--color-rule);list-style:none}.version-chain li{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:18px 0;border-bottom:1px solid var(--color-rule)}.version-chain li.is-current{border-left:3px solid var(--color-red);padding-left:15px}.version-chain li>div{display:flex;align-items:baseline;gap:20px}.version-chain li span{color:var(--color-ink-soft);font-size:.76rem}.admin-toolbar,.settings-actions,.settings-heading{display:flex;align-items:center;gap:13px}.admin-toolbar{justify-content:flex-end;margin-bottom:24px}.success-message{margin:0 0 24px;padding:13px 15px;border-left:3px solid var(--color-success);background:#edf5ef;color:var(--color-success);font-size:.82rem}.settings-section{margin-top:46px;padding-top:28px}.settings-heading{justify-content:space-between}.section-note{margin:-10px 0 25px;color:var(--color-ink-soft);font-size:.76rem}.settings-form{display:grid;max-width:720px;gap:19px}.settings-form>.button{justify-self:start}@media(min-width:640px){.page{padding-top:40px;padding-inline:47px 40px}.form-actions,.primary-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.record-row{grid-template-columns:minmax(0,1fr) auto auto;align-items:center}.record-row .button{grid-column:auto}}@media(max-width:1080px){.admin-shell{grid-template-columns:210px minmax(0,1fr)}.admin-sidebar{padding-left:28px}.metric-grid,.admin-inline-form,.admin-inline-form--four,.filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.admin-shell{display:block}.admin-sidebar{position:static;display:block;width:100%;height:auto;padding:23px 19px 0 26px;border-right:0;border-bottom:1px solid var(--color-rule)}.admin-logo{width:132px}.admin-product{display:none}.admin-nav{display:flex;gap:5px;margin:18px -19px 0 -26px;padding:0 19px 8px 26px;overflow-x:auto}.admin-nav__link{flex:0 0 auto;border-left:0;border-bottom:2px solid transparent;white-space:nowrap}.admin-nav__link:hover,.admin-nav__link.is-active{border-left-color:transparent;border-bottom-color:var(--color-red);background:transparent}.admin-identity{position:absolute;top:15px;right:18px;display:flex;align-items:center;gap:12px;margin:0;padding:0;border:0}.admin-identity>span{display:none}.admin-main{padding:35px 19px 64px 26px}.admin-page-header{display:block;margin-bottom:34px}.admin-page-header>p{margin:18px 0 0}.admin-inline-form,.admin-inline-form--four,.filter-bar,.admin-action-bar{grid-template-columns:1fr}.admin-inline-form .button,.admin-inline-form--four .button{width:100%}.admin-table,.admin-table tbody,.admin-table tr,.admin-table td{display:block;width:100%}.admin-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.admin-table tr{padding:17px 0;border-bottom:1px solid var(--color-ink)}.admin-table td,.admin-table td:first-child,.admin-table td:last-child{display:grid;grid-template-columns:minmax(92px,.7fr) minmax(0,1.3fr);gap:13px;min-width:0;padding:8px 0;border:0}.admin-table td:before{color:var(--color-ink-soft);font-size:.66rem;font-weight:700;letter-spacing:.06em;content:attr(data-label)}.table-actions{display:grid}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:420px){.page{padding:23px 19px 56px 26px}.brand-header{margin-bottom:70px}.brand-header--compact{margin-bottom:16px}.brand-product{display:none}.field-pair{grid-template-columns:1fr}.signature-canvas{height:210px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}:root{font-family:Inter,Noto Sans JP,Hiragino Sans,Yu Gothic UI,Yu Gothic,system-ui,sans-serif;color:#172033;background:#eef1f5;--color-ink: #172033;--color-ink-soft: #667085;--color-paper: #eef1f5;--color-paper-raised: #ffffff;--color-brand-red: #e31b23;--color-red: #d81f28;--color-red-dark: #b71922;--color-rule: #e3e7ed;--color-rule-dark: #cbd2dc;--color-success: #087a68;--color-warning: #a45f00;--color-navy: #0d1627;--color-navy-raised: #162238;--color-canvas: #f4f6f9;--color-error-bg: #fff2f3;--font-serif: Inter, "Noto Sans JP", "Hiragino Sans", "Yu Gothic UI", sans-serif;--font-data: "SFMono-Regular", "Roboto Mono", Consolas, monospace;--page-width: 820px;font-synthesis:none}html,body{background:var(--color-canvas)}body:before{display:none}h1,h2{font-family:inherit}h1{margin-bottom:14px;font-size:clamp(1.85rem,6vw,2.65rem);font-weight:750;letter-spacing:-.035em;line-height:1.28}h2{font-size:1.05rem;font-weight:720;letter-spacing:-.012em}.icon{display:block;flex:0 0 auto}.page{width:min(100%,var(--page-width));min-height:100vh;margin:0 auto;padding:28px 42px 88px;border-inline:1px solid var(--color-rule);background:#fffffff0;box-shadow:0 30px 80px #16223814}.brand-header{align-items:center;min-height:58px;margin-bottom:46px;padding:0 0 19px;border-bottom:1px solid var(--color-rule)}.brand-header--compact{margin-bottom:22px}.brand-logo{width:min(164px,52vw)}.brand-product{display:inline-flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid var(--color-rule);border-radius:999px;color:var(--color-ink-soft);font-size:.65rem;font-weight:720;letter-spacing:.08em;writing-mode:horizontal-tb}.brand-product>span{width:6px;height:6px;border-radius:50%;background:var(--color-brand-red);box-shadow:0 0 0 3px #e31b231a}.brand-header--inverse{width:100%;margin:0;border-bottom-color:#ffffff24}.brand-header--inverse .brand-logo{filter:brightness(0) invert(1)}.brand-header--inverse .brand-product{border-color:#ffffff2e;color:#ffffffad}.page-nav{margin-bottom:20px}.text-link{gap:7px;min-height:44px;color:#5a667a;font-size:.78rem;font-weight:680;letter-spacing:0}.eyebrow{gap:8px;margin-bottom:10px;color:#cc1620;font-size:.67rem;font-weight:780;letter-spacing:.14em}.eyebrow:before{width:17px;height:2px;border-radius:2px}.page-title{margin-bottom:24px}.page-title h1{margin:0}.auth-shell{display:grid;grid-template-columns:minmax(360px,.88fr) minmax(520px,1.12fr);min-height:100vh;background:var(--color-canvas)}.auth-brand{position:relative;display:flex;min-height:100vh;flex-direction:column;justify-content:space-between;overflow:hidden;padding:clamp(30px,4vw,58px);background:var(--color-navy);color:#fff}.auth-brand:before{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:54px 54px;content:"";-webkit-mask-image:linear-gradient(to bottom right,#000,transparent 72%);mask-image:linear-gradient(to bottom right,#000,transparent 72%);pointer-events:none}.auth-brand:after{position:absolute;top:0;right:0;width:4px;height:42%;background:var(--color-brand-red);content:""}.auth-brand>*{position:relative;z-index:1}.auth-brand__message{max-width:440px;margin:auto 0;padding-block:70px}.auth-brand__index{color:#ffffff7a;font-family:var(--font-data);font-size:.65rem;letter-spacing:.17em}.auth-brand__slogan{margin:22px 0 19px;color:#fff;font-size:clamp(2.5rem,5vw,4.6rem);font-weight:720;letter-spacing:-.06em;line-height:1.16}.auth-brand__description{max-width:340px;margin:0;color:#fff9;font-size:.88rem;line-height:1.9}.auth-brand__track{display:flex;align-items:center;gap:0;width:min(280px,75%)}.auth-brand__track span{position:relative;width:50%;height:1px;background:#fff3}.auth-brand__track span:before{position:absolute;top:50%;left:0;width:7px;height:7px;border:2px solid var(--color-navy);border-radius:50%;background:#ffffff73;box-shadow:0 0 0 1px #ffffff59;content:"";transform:translateY(-50%)}.auth-brand__track span:first-child:before{background:var(--color-brand-red);box-shadow:0 0 0 4px #e31b2333}.auth-content{display:grid;min-height:100vh;place-items:center;padding:clamp(32px,7vw,96px)}.auth-card{width:min(100%,520px);padding:clamp(31px,5vw,50px);border:1px solid #e1e5eb;border-radius:18px;background:#fff;box-shadow:0 24px 70px #1927411c}.auth-card__heading{margin-bottom:31px}.auth-card__heading h1{margin-bottom:9px;font-size:clamp(1.9rem,4vw,2.5rem)}.auth-card__heading>p:last-child{margin:0;color:var(--color-ink-soft);font-size:.84rem;line-height:1.75}.auth-card .login-form{max-width:none;margin:0}.auth-card__security{display:flex;align-items:center;justify-content:center;gap:7px;margin:24px 0 0;color:#667085;font-size:.67rem}.auth-card__security span{color:var(--color-success);font-size:.55rem}.form-stack{gap:20px}.page>.form-stack,.signature-form{padding:28px;border:1px solid var(--color-rule);border-radius:16px;background:var(--color-paper-raised);box-shadow:0 12px 35px #1b273d0f}.field{gap:8px}.field__label{color:#4a5568;font-size:.72rem;font-weight:730;letter-spacing:.03em}.field__control{min-height:50px;padding:12px 14px;border:1px solid #cfd6df;border-radius:9px;background:#fff;box-shadow:0 1px 2px #19274108;font-size:.95rem;transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}.field__control:hover{border-color:#98a3b2}.field__control:focus{border-color:var(--color-brand-red);background:#fff;box-shadow:0 0 0 4px #e31b2317}.button{min-height:50px;padding:12px 20px;border-radius:9px;font-size:.82rem;font-weight:760;letter-spacing:.025em;box-shadow:0 1px 2px #15203414}.button--primary{border-color:var(--color-brand-red);background:var(--color-brand-red);box-shadow:0 8px 18px #e31b232e}.button--secondary{border-color:#cbd2dc;background:#fff;color:#2d3748;box-shadow:0 1px 2px #1520340a}.button--secondary:hover:not(:disabled){border-color:#99a4b4;background:#f7f8fa;color:var(--color-ink)}.button--quiet{min-height:44px;padding:7px 9px;border:0;border-radius:7px;background:transparent;box-shadow:none}.button--quiet:hover:not(:disabled){background:#f0f2f5;color:var(--color-brand-red)}.form-error,.success-message,.immutable-notice{border:1px solid #f1c7ca;border-left:4px solid var(--color-brand-red);border-radius:9px;background:var(--color-error-bg)}.success-message,.immutable-notice{border-color:#bcded7;border-left-color:var(--color-success);background:#eff9f6}.worked-total{padding:18px;border:1px solid var(--color-rule);border-radius:10px;background:#f7f8fa}.worked-total strong,.summary-grid dd,.compact-summary dd,.history-entry time,.detail-grid dd{font-family:var(--font-data);font-variant-numeric:tabular-nums}.workflow-steps{margin:2px 0 31px;padding:17px 18px;border:1px solid var(--color-rule);border-radius:12px;background:#fafbfc}.workflow-steps ol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:0;list-style:none}.workflow-step{position:relative;display:flex;align-items:center;gap:8px;color:#667085;font-size:.69rem;font-weight:690}.workflow-step:not(:last-child):after{position:absolute;z-index:0;top:50%;right:10px;left:34px;height:1px;background:#dbe0e7;content:""}.workflow-step__marker{position:relative;z-index:1;display:grid;width:24px;height:24px;flex:0 0 auto;place-items:center;border:1px solid #d2d8e0;border-radius:50%;background:#fff;font-family:var(--font-data);font-size:.65rem}.workflow-step__label{position:relative;z-index:1;padding-right:8px;background:#fafbfc;white-space:nowrap}.workflow-step--current{color:var(--color-ink)}.workflow-step--current .workflow-step__marker{border-color:var(--color-brand-red);background:var(--color-brand-red);color:#fff;box-shadow:0 0 0 4px #e31b2317}.workflow-step--done{color:var(--color-success)}.workflow-step--done .workflow-step__marker{border-color:var(--color-success);background:var(--color-success);color:#fff}.home-hero{position:relative;overflow:hidden;margin-bottom:22px;padding:30px;border-radius:17px;background:var(--color-navy);color:#fff;box-shadow:0 18px 35px #0d162729}.home-hero:after{position:absolute;inset:0 0 auto;height:3px;background:var(--color-brand-red);content:""}.home-hero .eyebrow,.home-hero .date-display,.home-hero>p:last-child{color:#ffffffa6}.home-hero .eyebrow:before{background:var(--color-brand-red)}.home-hero h1{margin:5px 0 7px;color:#fff;font-size:clamp(1.75rem,7vw,2.45rem)}.date-display{font-family:var(--font-data);font-weight:550;letter-spacing:.02em}.primary-actions{margin-bottom:43px}.ledger-section{padding:25px;border:1px solid var(--color-rule);border-radius:15px;background:#fff;box-shadow:0 10px 30px #1b273d0d}.section-heading{margin-bottom:15px}.section-count{width:30px;height:24px;border:0;border-radius:999px;background:#eff1f4;font-family:var(--font-data)}.record-list,.history-list{border-top-color:var(--color-rule)}.record-row{padding:18px 0}.record-row .button{min-height:44px;padding-block:10px}.history-list{display:grid;gap:14px;margin-top:22px;border:0}.history-entry{padding:22px;border:1px solid var(--color-rule);border-radius:13px;background:#fff;box-shadow:0 7px 22px #1b273d0b}.compact-summary{overflow:hidden;padding:0;border:1px solid var(--color-rule);border-radius:9px;background:#fafbfc}.compact-summary>div{padding:13px;border-right:1px solid var(--color-rule)}.compact-summary>div:last-child{border-right:0}.attendance-summary,.detail-ledger{padding:24px;border:1px solid var(--color-rule);border-radius:14px;background:#fff;box-shadow:0 9px 28px #1b273d0d}.signature-canvas{border:1px dashed #aeb7c5;border-radius:10px;background-color:#fff;background-image:linear-gradient(#eef1f5 1px,transparent 1px),linear-gradient(90deg,#eef1f5 1px,transparent 1px);background-size:22px 22px}.completion-mark{border:0;background:#eaf7f3;box-shadow:0 0 0 8px #087a6814;font-family:inherit;font-weight:800}.status-badge{gap:6px;padding:5px 9px;border-radius:999px;background:#f1f3f6;font-size:.65rem;letter-spacing:.025em;text-decoration:none}.status-badge--done{background:#eaf7f3}.status-badge--pending{background:#fff4df;color:var(--color-warning)}.status-badge--muted{background:#eef0f3;color:#747e8d;text-decoration:none}.admin-shell{grid-template-columns:272px minmax(0,1fr);background:var(--color-canvas)}.admin-sidebar{z-index:5;padding:28px 19px 20px;border:0;background:var(--color-navy);box-shadow:10px 0 40px #09111f14;color:#fff}.admin-brand{padding:0 11px 25px;border-bottom:1px solid rgba(255,255,255,.11)}.admin-logo{width:144px;filter:brightness(0) invert(1)}.admin-product{display:flex;align-items:center;gap:8px;margin:13px 0 0;color:#ffffff85;font-size:.65rem;letter-spacing:.04em}.admin-product span{padding-left:8px;border-left:1px solid rgba(255,255,255,.2)}.admin-nav__caption{margin:26px 12px 9px;color:#ffffff94;font-family:var(--font-data);font-size:.57rem;font-weight:650;letter-spacing:.14em}.admin-nav{gap:4px}.admin-nav__link{gap:12px;min-height:45px;padding:10px 12px;border:0;border-radius:9px;color:#ffffff9e;font-size:.78rem;font-weight:650;letter-spacing:0}.admin-nav__link:hover,.admin-nav__link.is-active{border:0;color:#fff}.admin-nav__link:hover{background:#ffffff0f}.admin-nav__link.is-active{position:relative;background:var(--color-navy-raised);box-shadow:inset 0 0 0 1px #ffffff0f}.admin-nav__link.is-active:before{position:absolute;inset:9px auto 9px -1px;width:3px;border-radius:3px;background:var(--color-brand-red);content:""}.admin-sidebar__footer{margin-top:auto}.admin-system-state{display:flex;align-items:center;gap:8px;margin:0 8px 14px;color:#ffffff80;font-size:.64rem}.admin-system-state__dot{width:7px;height:7px;border-radius:50%;background:#36c6a6;box-shadow:0 0 0 4px #36c6a61a}.admin-identity{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:9px;margin:0;padding:15px 9px 0;border-top-color:#ffffff1a}.admin-avatar{display:grid;width:34px;height:34px;place-items:center;border-radius:9px;background:#26334a;color:#fff;font-size:.75rem;font-weight:750}.admin-identity__name{overflow:hidden;color:#ffffffc7;font-size:.72rem;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.admin-identity .button--quiet{width:34px;min-height:34px;padding:0;color:#ffffff80}.admin-identity .button--quiet:hover:not(:disabled){background:#ffffff14;color:#fff}.admin-workspace{min-width:0}.admin-topbar{position:sticky;z-index:4;top:0;display:flex;min-height:64px;align-items:center;justify-content:space-between;padding:0 clamp(26px,4vw,56px);border-bottom:1px solid var(--color-rule);background:#ffffffeb;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:var(--color-ink-soft);font-size:.7rem}.admin-topbar>div{display:flex;align-items:center;gap:11px}.admin-topbar__label{color:var(--color-ink);font-family:var(--font-data);font-size:.65rem;font-weight:750;letter-spacing:.12em}.admin-topbar__divider{width:1px;height:16px;background:#d7dce3}.admin-topbar__date{font-family:var(--font-data);font-size:.63rem}.admin-main{max-width:1540px;padding:42px clamp(28px,4.5vw,68px) 86px}.admin-page-header{align-items:center;margin-bottom:29px;padding-bottom:22px;border-bottom-color:var(--color-rule)}.admin-page-header h1{font-size:clamp(1.65rem,3vw,2.2rem);font-weight:760}.admin-page-header>p{max-width:490px;margin:0;color:var(--color-ink-soft);font-size:.76rem}.metric-grid{gap:15px;border:0}.metric{position:relative;min-height:168px;overflow:hidden;padding:22px;border:1px solid var(--color-rule);border-radius:13px;background:#fff;box-shadow:0 9px 28px #1b273d0e}.metric:after{position:absolute;inset:auto 0 0;height:3px;background:#dfe3e9;content:""}.metric:nth-child(3):after{background:#d89028}.metric:nth-child(4):after{background:var(--color-brand-red)}.metric header{display:flex;justify-content:space-between}.metric span{color:var(--color-ink-soft);font-size:.69rem;letter-spacing:.03em}.metric small{color:#667085;font-family:var(--font-data);font-size:.62rem}.metric strong{margin-top:29px;font-family:var(--font-data);font-size:clamp(1.7rem,3vw,2.45rem);font-weight:650;letter-spacing:-.045em}.metric p{margin:7px 0 0;color:#667085;font-size:.64rem}.admin-panel,.settings-section{margin-bottom:27px;padding:24px;border:1px solid var(--color-rule);border-radius:13px;background:#fff;box-shadow:0 7px 24px #1b273d0b}.admin-panel h2,.settings-section h2,.version-chain h2,.signature-view h2{margin-bottom:19px;font-size:.98rem}.admin-table-wrap{overflow-x:auto;overflow-y:hidden;border:1px solid var(--color-rule);border-radius:13px;background:#fff;box-shadow:0 7px 24px #1b273d0b}.admin-table{font-size:.77rem}.admin-table th{padding:13px 15px;border-bottom-color:#d7dce4;background:#f6f7f9;color:#5f6b7f;font-size:.63rem;letter-spacing:.05em}.admin-table td,.admin-table td:first-child,.admin-table td:last-child{padding:15px}.admin-table tbody tr{transition:background-color .12s ease}.admin-table tbody tr:hover{background:#fafbfc}.admin-table td:first-child,.admin-table th:first-child{padding-left:20px}.admin-table td:last-child,.admin-table th:last-child{padding-right:20px}.filter-bar{margin-bottom:22px;padding:20px;border:1px solid var(--color-rule);border-radius:12px;background:#fff;box-shadow:0 6px 20px #1b273d0a}.admin-action-bar{margin-top:0;border:1px solid #f0c7ca;border-left:4px solid var(--color-brand-red);border-radius:11px;box-shadow:0 6px 20px #1b273d0a}.detail-ledger{border-radius:13px}.detail-grid{overflow:hidden;border-radius:9px;background:#fafbfc}.detail-grid dd{font-size:.93rem}.signature-view img{border-radius:11px;background:#fff;box-shadow:0 8px 24px #1b273d0d}.version-chain ol{overflow:hidden;border:1px solid var(--color-rule);border-radius:11px;background:#fff}.version-chain li{padding-inline:18px}.version-chain li.is-current{border-left:4px solid var(--color-brand-red);background:#fff8f8}.settings-section{margin-top:27px}.settings-form{max-width:760px}@media(max-width:1080px){.auth-shell{grid-template-columns:minmax(300px,.72fr) minmax(460px,1fr)}.admin-shell{grid-template-columns:230px minmax(0,1fr)}.admin-sidebar{padding-inline:14px}.admin-main{padding-inline:26px}}@media(max-width:760px){.auth-shell{display:block;min-height:100vh}.auth-brand{min-height:auto;padding:22px 24px 30px}.auth-brand:after{width:34%;height:3px;inset:auto 0 0 auto}.auth-brand__message{margin:34px 0 0;padding:0}.auth-brand__slogan{margin:15px 0 10px;font-size:2rem}.auth-brand__description,.auth-brand__track,.auth-brand .brand-product{display:none}.auth-content{min-height:auto;padding:24px 18px 48px}.auth-card{padding:27px 22px;border-radius:14px}.page{padding:20px 18px 64px;border:0;box-shadow:none}.brand-header{min-height:50px;margin-bottom:29px;padding-bottom:15px}.brand-header--compact{margin-bottom:15px}.brand-logo{width:140px}.brand-product{padding:6px 8px;font-size:.58rem}.workflow-steps{margin-bottom:24px;padding:14px 12px}.workflow-step{gap:6px;font-size:.61rem}.workflow-step__marker{width:21px;height:21px}.workflow-step:not(:last-child):after{right:4px;left:28px}.page>.form-stack,.signature-form,.attendance-summary,.ledger-section{padding:20px;border-radius:13px}.admin-sidebar{position:relative;padding:19px 16px 0;border-bottom:0;background:var(--color-navy)}.admin-brand{padding:0 3px 16px;border-bottom:0}.admin-logo{width:126px}.admin-product,.admin-nav__caption{display:none}.admin-sidebar__footer{position:absolute;top:12px;right:16px;display:block;margin:0}.admin-system-state,.admin-avatar,.admin-identity__name{display:none}.admin-identity{display:block;margin:0;padding:0;border:0}.admin-identity .button--quiet{width:44px;min-height:44px}.admin-nav{margin:0 -16px;padding:0 16px 9px}.admin-nav__link{min-height:41px;gap:7px;padding:8px 10px;border-radius:8px}.admin-nav__link.is-active{background:var(--color-navy-raised)}.admin-nav__link.is-active:before{display:none}.admin-workspace{min-width:0}.admin-topbar{position:static;min-height:50px;padding:0 18px}.admin-topbar__date{display:none}.admin-main{padding:28px 18px 64px}.admin-page-header{margin-bottom:24px;padding-bottom:18px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric{min-height:145px;padding:18px}.metric strong{margin-top:23px}.admin-panel,.settings-section,.filter-bar{padding:19px}.admin-table-wrap{overflow:visible;border:0;border-radius:0;background:transparent;box-shadow:none}.admin-table tr{margin-bottom:12px;padding:14px 16px;border:1px solid var(--color-rule);border-radius:11px;background:#fff;box-shadow:0 5px 18px #1b273d0a}.admin-table td,.admin-table td:first-child,.admin-table td:last-child{padding:7px 0}}@media(max-width:420px){.page{padding:18px 15px 56px}.brand-header,.brand-header--compact{margin-bottom:18px}.brand-product{display:inline-flex}.workflow-step__label{padding-right:4px}.field-pair{grid-template-columns:1fr 1fr}.metric-grid{grid-template-columns:1fr}}
