: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}}
