:root{color:#20362e;font-synthesis:none;--green:#254c40;--red:#ad3f35;--yellow:#8c640a;--muted:#727d73;background:#f5f5ee;font-family:-apple-system,BlinkMacSystemFont,Hiragino Kaku Gothic ProN,Noto Sans JP,sans-serif;font-weight:400;line-height:1.65}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}a{color:var(--green);text-underline-offset:4px}button{color:inherit}button:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #d7a84a}input,select,textarea{color:#233a30;background:#fff;border:1px solid #cfd7cd;border-radius:9px;width:100%;min-width:0;min-height:48px;padding:12px;font-size:16px}input:focus,select:focus,textarea:focus{outline-offset:1px;outline:2px solid #668570}textarea{resize:vertical}label{margin:14px 0;font-size:13px;font-weight:600;display:block}label input,label select,label textarea{margin-top:6px;font-weight:400;display:block}h1,h2,h3,p{margin:0}h1{letter-spacing:-1px;font-size:29px;font-weight:700;line-height:1.4}h2{margin:28px 0 14px;font-size:18px;line-height:1.5}h3{font-size:16px}p+p{margin-top:10px}fieldset{border:0;margin:24px 0 34px;padding:0}legend{border-bottom:1px solid #d9ded4;width:100%;margin-bottom:10px;padding-bottom:12px;font-size:17px;font-weight:700}small,.small{font-size:12px}.muted{color:var(--muted)}.grow{flex:1;min-width:0}.required{color:var(--red);margin-left:4px;font-size:10px;font-weight:500}.full{width:100%}.spaced{margin-top:18px}.primary,.secondary,.danger,.google-button{border:0;border-radius:12px;justify-content:center;align-items:center;gap:10px;min-height:50px;padding:12px 18px;font-size:15px;font-weight:600;text-decoration:none;transition:transform .15s,background .15s;display:inline-flex}.primary{background:var(--green);color:#fff}.primary:active,.secondary:active,.contract-card:active{transform:scale(.985)}.secondary{background:#ecf0e7;border:1px solid #d4ddcf}.danger{background:var(--red);color:#fff}.danger-text{color:var(--red)}.text-button{background:0 0;border:0;align-items:center;gap:6px;min-height:44px;padding:6px 2px;font-size:13px;text-decoration:none;display:inline-flex}.icon-button{background:0 0;border:0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}.app-shell{background:#fafbf7;max-width:700px;min-height:100svh;margin:0 auto}.topbar{height:calc(64px + env(safe-area-inset-top));padding:0 24px;padding-top:env(safe-area-inset-top);border-bottom:1px solid #e4e8dd;justify-content:space-between;align-items:center;display:flex}.brand{letter-spacing:-.8px;background:0 0;border:0;align-items:center;gap:9px;min-height:44px;padding:0;font-size:19px;font-weight:700;display:flex}.brand-mark{background:var(--green);color:#fff;border-radius:8px;place-items:center;width:30px;height:34px;display:grid}.avatar{background:#e4ebdf;border:0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:15px;display:flex}.header-actions{align-items:center;gap:8px;display:flex}.viewer-pill{align-items:center;gap:4px;font-size:11px;display:flex}.demo-banner{text-align:center;color:#665418;background:#f5e7bd;padding:5px 10px;font-size:11px}main{padding:28px 24px 8px}.page-title{justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.eyebrow{text-transform:uppercase;letter-spacing:1.5px;color:var(--muted);margin-bottom:7px;font-size:11px;display:block}.today{font-variant-numeric:tabular-nums;text-align:center;font-size:23px;line-height:1.4}.today small{color:var(--muted);font-size:10px;display:block}.list-summary{border-top:1px solid #dce3d5;border-bottom:1px solid #dce3d5;justify-content:space-between;align-items:center;margin-bottom:16px;padding:12px 0;font-size:13px;display:flex}.list-summary strong{margin-right:4px;font-size:18px}.section-label{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-label h2{margin:0;font-size:14px}.section-label>span{color:var(--muted);font-size:12px}.contract-list{flex-direction:column;gap:14px;margin-top:12px;display:flex}.contract-card{text-align:left;background:#fff;border:1px solid #e0e5db;border-radius:16px;width:100%;padding:18px 18px 0;transition:transform .15s;overflow:hidden;box-shadow:0 2px 4px #293b2810}.card-top{justify-content:space-between;align-items:center;margin-bottom:8px;font-size:10px;line-height:1.4;display:flex}.category{color:#667466}.renew-label{color:#7b8679;align-items:center;gap:4px;display:inline-flex}.contract-name{justify-content:space-between;align-items:center;gap:10px;display:flex}.contract-name h3{font-size:19px;font-weight:600}.provider{color:var(--muted);margin-top:2px;font-size:12px}.deadline-summary{background:#f0f3ec;border-radius:10px;margin:15px 0 16px;padding:13px 14px}.status-label{margin-bottom:2px;font-size:12px;display:block}.deadline-line{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.deadline-line strong{letter-spacing:-.8px;font-variant-numeric:tabular-nums;font-size:25px;font-weight:600;line-height:1.5}.deadline-line.period-line strong{letter-spacing:-.3px;white-space:nowrap;font-size:clamp(15px,4.5vw,21px)}.days{text-align:right;font-size:12px;font-weight:600}.other-date{border-top:1px solid #00000014;align-items:baseline;gap:8px;margin-top:8px;padding-top:8px;font-size:12px;display:flex}.other-date>span:first-child{flex:1}.other-date strong{font-variant-numeric:tabular-nums;font-size:15px;font-weight:600}.red .deadline-summary{color:var(--red);background:#fcefeb}.yellow .deadline-summary{color:var(--yellow);background:#fbf4db}.red.contract-card{border-color:#edcec7}.card-bottom{color:#828c7e;border-top:1px solid #edf0e9;justify-content:space-between;align-items:center;gap:6px;margin:0 -18px;padding:11px 18px;font-size:11px;display:flex}.card-bottom span:first-child{font-size:11px}.expired-section{background:#f8eeee;border-left:3px solid #ad675e;border-radius:12px;margin-bottom:26px;padding:0 14px 4px}.expired-section h2{color:#99483e;align-items:center;gap:8px;margin:0 0 4px;padding-top:12px;font-size:13px;display:flex}.status-dot{background:#b35d51;border-radius:50%;width:6px;height:6px}.count{margin-left:auto;font-size:11px}.expired-row{text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:12px 0;font-size:14px;display:flex}.expired-row p{color:var(--muted);margin-top:3px;font-size:10px}.expired-row small{color:var(--muted);font-size:11px;display:block}.add-contract{margin-top:24px}.cancelled{border-top:1px solid #e0e5d8;margin-top:28px}.cancelled summary{cursor:pointer;padding:17px 0;font-size:13px}.cancelled summary span{float:right;color:var(--muted)}footer{color:#83907f;padding:24px 24px 114px;font-size:10px;line-height:1.8}footer div{gap:16px;margin-top:14px;display:flex}footer a{color:#71816b;font-size:10px;text-decoration:none}.bottom-nav{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10;width:min(100%,700px);padding:9px 12px calc(9px + env(safe-area-inset-bottom));background:#fafbf7f7;border-top:1px solid #dfe5d8;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom-nav button{color:#8a9584;background:0 0;border:0;flex-direction:column;flex:1;align-items:center;gap:3px;min-height:45px;font-size:10px;display:flex}.bottom-nav button.active{color:var(--green);font-weight:700}.empty-state{text-align:center;color:var(--muted);padding:50px 10px}.empty-state>svg{margin-bottom:15px}.empty-state h1,.empty-state h2{color:#314a3a;margin-bottom:12px}.empty-state p{margin-bottom:24px;font-size:14px}.back{margin:-6px 0 16px}.updated{color:var(--muted);margin:-10px 0 22px;font-size:10px}.detail-deadline{border-top:1px solid #dfe6d9;padding:22px 0}.detail-deadline .badge{color:#62705c;background:#ecf0e7;border-radius:5px;padding:3px 8px;font-size:11px}.detail-deadline.red .badge{color:var(--red);background:#fbe7e0}.result-date{letter-spacing:-.6px;margin:12px 0 4px;font-size:23px;font-weight:600;line-height:1.6}.result-date span{color:#9aa391;font-size:14px}.remaining{color:var(--green);margin-bottom:16px;font-size:13px}.red .remaining{color:var(--red)}.calculation{background:#eff2eb;border-radius:10px;padding:12px 14px;font-size:12px}.calculation summary{color:#65735d;cursor:pointer;font-size:11px}.calculation-flow{flex-direction:column;gap:10px;margin-top:14px;display:flex}.calculation-flow span{color:#707a68}.calculation-flow strong{font-size:13px}.future{border:1px solid #dce3d5;border-radius:12px;margin:18px 0;padding:14px}.future summary{cursor:pointer;justify-content:space-between;align-items:center;font-size:13px;display:flex}.future section{padding-top:16px}.future p{flex-direction:column;margin-top:8px;font-size:11px;display:flex}.contract-info dl{grid-template-columns:100px 1fr;gap:12px;font-size:13px;display:grid}.contract-info dt{color:var(--muted)}.contract-info dd{margin:0}.memo{white-space:pre-wrap;margin:16px 0;font-size:14px}.notice{background:#f1f0e5;border-radius:12px;margin:16px 0;padding:16px;font-size:13px}.notice p{margin-top:6px;font-size:12px}.error,.error-banner{color:#a33c30;background:#fff0e9;border-radius:10px;padding:12px;font-size:13px}.error-banner{justify-content:space-between;align-items:center;gap:8px;margin-bottom:18px;display:flex}.error-banner .text-button{flex-shrink:0}.space-switch{margin:0 0 20px}.field-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.field-grid label{min-width:0}.offset-fields{grid-template-columns:1fr 1fr 1fr;gap:10px;display:grid}.rule-item{background:#fff;border:1px solid #dce3d5;border-radius:14px;margin:18px 0;padding:16px}.rule-heading{align-items:center;gap:10px;display:flex}.rule-heading label{margin-top:0}.step-number{color:#93a08a;font-variant-numeric:tabular-nums;font-size:16px}.rule-fields{border-top:1px solid #e6ebdf;margin-top:18px;padding-top:16px}.rule-fields h3{font-size:13px}.check-label{align-items:center;gap:10px;min-height:44px;font-size:12px;font-weight:400;display:flex}.check-label input{width:20px;min-height:20px;accent-color:var(--green);flex-shrink:0;margin:0}.sentence{color:#546d47;background:#eff3e9;border-radius:8px;margin-top:18px;padding:13px;font-size:12px;line-height:1.8}.rule-preview{flex-direction:column;gap:5px;padding:16px 0 0;font-size:13px;display:flex}.rule-preview>span{color:var(--muted);font-size:10px}.save-bar{padding:16px 0 calc(16px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fafbf7ed;position:sticky;bottom:0}.disclaimer{color:var(--muted);margin:24px 0;font-size:11px}.link-row,.member-row{border-bottom:1px solid #e2e7da;justify-content:space-between;align-items:center;gap:12px;padding:16px 0;font-size:13px;display:flex}.plain-list{margin-bottom:16px}.new-link{background:#e9f0e2;border-radius:12px;margin:24px 0;padding:16px;font-size:13px}.new-link p{margin:8px 0;font-size:11px}.new-link button{margin-top:10px}.align-bottom{align-self:end;margin-bottom:14px}.dialog{color:#283f31;background:#fafbf7;border:0;border-radius:18px;width:calc(100% - 40px);max-width:440px;padding:24px}.dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#142e2680}.dialog-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.dialog h2{margin:0;font-size:19px}.dialog p{margin:16px 0 22px;font-size:13px}.toast{bottom:calc(85px + env(safe-area-inset-bottom));color:#fff;z-index:30;white-space:normal;background:#254c40;border-radius:12px;align-items:center;gap:8px;max-width:90%;padding:12px 18px;font-size:13px;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 6px 28px #10281f30}.login{text-align:left;padding-top:14px}.login-graphic{color:#426b48;background:#e9efe3;border-radius:30px;place-items:center;width:120px;height:120px;margin-bottom:36px;display:grid;position:relative;transform:rotate(-6deg)}.graphic-check{background:var(--green);color:#fff;border:5px solid #fafbf7;border-radius:50%;place-items:center;width:42px;height:42px;display:grid;position:absolute;bottom:8px;right:-8px}.login h1{letter-spacing:-1.6px;font-size:35px;line-height:1.6}.login-copy{color:#718069;margin:18px 0 28px;font-size:14px;line-height:2.1}.google-button{color:#1f1f1f;background:#fff;border:1px solid #747775;border-radius:6px;gap:12px;width:100%;min-height:46px;font-family:Arial,sans-serif;font-size:14px;font-weight:500}.google-button svg:last-child{margin-left:auto}.onboarding{border-top:1px solid #dfe5d8;margin:32px 0 20px;padding-top:22px}.onboarding h2{margin:0 0 12px;font-size:14px}.onboarding ol{color:#64745d;padding-left:18px;font-size:12px;line-height:2.2}.demo-link{margin-top:16px}.legal h2{margin-top:26px}.legal p{font-size:13px;line-height:2}.pwa-update{background:var(--green);color:#fff;z-index:100;border:0;border-radius:10px;padding:12px;position:fixed;top:8px;right:8px}.page-enter{animation:.25s ease-out enter}.spin{animation:1s linear infinite spin}@keyframes enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@media (width>=701px){.app-shell{border:1px solid #e1e6d8;border-radius:24px 24px 0 0;min-height:calc(100svh - 20px);margin-top:20px}main{padding:32px 38px 12px}.topbar{padding:0 38px}.contract-list{gap:16px}.card-bottom,.card-bottom span:first-child{font-size:11px}.bottom-nav{border-left:1px solid #e1e6d8;border-right:1px solid #e1e6d8}.login{padding:24px 20px 0}.login h1{font-size:42px}}@media (width<=360px){main{padding:24px 16px 8px}.topbar{padding:0 16px}.deadline-line{flex-wrap:wrap}.deadline-line strong{font-size:24px}.card-bottom{flex-wrap:wrap}.offset-fields{gap:6px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.group-label{margin:14px 0 0;font-size:13px;font-weight:600}.offset-fields label{margin-top:6px}.page-title>button{white-space:nowrap;flex-shrink:0}.rule-detail{border-left:3px solid #dce3d5;margin:0 0 14px;padding:2px 0 2px 14px}.word-check{background:#fff;border:1px solid #dce3d5;border-radius:12px;margin:16px 0 12px;padding:12px 14px 4px}.word-check.missing{border-color:var(--red)}.word-check legend{float:left;border-bottom:0;margin:0;padding:0;font-size:14px}.word-list{clear:both;flex-wrap:wrap;gap:2px 4px;margin:8px 0 0;font-size:13px;display:flex}.yes-no{gap:20px;display:flex}.yes-no .check-label{font-size:14px}.word-check .error{margin:0 0 10px}.mode-choices{gap:8px;margin:16px 0 6px;display:grid}.mode-choice{cursor:pointer;background:#fff;border:1px solid #dce3d5;border-radius:12px;align-items:flex-start;gap:12px;margin:0;padding:14px;font-weight:400;display:flex}.mode-choice:has(input:checked){border-color:var(--green);background:#eff3e9}label.mode-choice input{width:20px;min-height:20px;accent-color:var(--green);flex-shrink:0;margin:3px 0 0;display:inline-block}.mode-choice strong{font-size:15px;display:block}.mode-choice small{color:var(--muted);margin-top:2px;font-size:12px;display:block}.offset-fields.two{grid-template-columns:1fr 1fr}.sentence strong{color:#20362e;margin-top:2px;font-size:16px;display:block}.rule-item>.rule-fields:first-child{border-top:0;margin-top:0;padding-top:0}.calendar-button{align-items:center;gap:6px;margin:4px 0 8px;display:inline-flex}.calendar-choices{margin:14px 0}.calendar-choices legend{margin-bottom:4px;padding-bottom:6px;font-size:14px}.calendar-google{margin-top:22px;font-size:14px}.calendar-summary{background:#eff3e9;border-radius:8px;margin:4px 0 14px;padding:10px 13px;font-size:14px;font-weight:600}.calendar-summary small{font-weight:400}.file-button{cursor:pointer;margin:18px 0 0;position:relative}.file-button input{opacity:0;cursor:pointer;width:100%;margin:0;position:absolute;inset:0}.file-button:focus-within{outline:2px solid var(--green);outline-offset:2px}.storage-warning strong{align-items:center;gap:6px;display:flex}.backup-reminder{color:var(--yellow);text-align:left;margin-bottom:6px}.received{background:#e9f0e2}.feedback-hp{opacity:0;width:1px;height:1px;position:absolute;left:-9999px}
