:root{color-scheme:light;--navy:#102a43;--brand:#1769aa;--brand-dark:#0f558e;--brand-soft:#edf6fd;--ink:#172b3a;--muted:#667788;--line:#dbe3ea;--line-strong:#bdcbd7;--surface:#fff;--canvas:#f4f7fa;--ok:#087a55;--ok-soft:#e9f8f1;--warn:#9a6700;--warn-soft:#fff7df;--danger:#b42318;--danger-soft:#fff1f0;--shadow:0 10px 28px rgba(16,42,67,.08)}
*{box-sizing:border-box}html{min-height:100%;background:var(--canvas)}body{min-height:100vh;margin:0;background:linear-gradient(180deg,#f8fbfd 0,var(--canvas) 280px);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic","Meiryo",sans-serif;font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased}a{color:var(--brand);text-underline-offset:3px}
header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}header .bar{max-width:1160px;min-height:68px;margin:auto;padding:0 28px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:inline-flex;align-items:center;gap:11px;color:var(--navy);font-weight:800;letter-spacing:.015em}.brand-mark{width:34px;height:34px;display:inline-grid;place-items:center;border-radius:10px;background:linear-gradient(145deg,#2587d8,#125a96);color:#fff;box-shadow:0 5px 14px rgba(23,105,170,.24);font-size:17px}.header-link{font-weight:700;text-decoration:none}
main{max-width:1060px;margin:38px auto 70px;padding:0 24px}.auth-shell{max-width:480px;margin:46px auto}.card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:28px 30px;margin-bottom:20px;box-shadow:0 3px 12px rgba(16,42,67,.04)}.card-elevated{box-shadow:var(--shadow)}.card-accent{border-top:4px solid var(--brand)}.page-head,.contract-head{display:flex;align-items:flex-start;justify-content:space-between;gap:22px}.eyebrow{margin:0 0 5px;color:var(--brand);font-size:.78rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}h1{margin:0 0 10px;color:var(--navy);font-size:clamp(1.55rem,3vw,2rem);line-height:1.35;letter-spacing:-.02em}h2{margin:0 0 12px;color:var(--navy);font-size:1.18rem;line-height:1.45}h3{margin:0 0 8px;font-size:1rem}p{margin:8px 0 14px}.muted{color:var(--muted);font-size:.92rem}.helper{display:block;margin-top:5px;color:var(--muted);font-size:.84rem;font-weight:500}.divider{height:1px;margin:24px 0;background:var(--line)}
.notice{display:flex;align-items:flex-start;gap:10px;padding:14px 16px;margin-bottom:20px;border:1px solid #9fd9c3;border-radius:10px;background:var(--ok-soft);color:#075b41;font-weight:700}.notice::before{content:"✓"}.notice.error{border-color:#f4b9b3;background:var(--danger-soft);color:var(--danger)}.notice.error::before{content:"!"}
.form-section{padding:4px 0 18px}.form-section+.form-section{padding-top:23px;border-top:1px solid var(--line)}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.field-grid.is-single{grid-template-columns:1fr}label{display:block;margin-top:16px;color:#294052;font-weight:750}input,select,textarea{width:100%;min-height:46px;margin-top:6px;padding:10px 12px;border:1px solid var(--line-strong);border-radius:9px;outline:0;background:#fff;color:var(--ink);font:inherit;transition:border-color .15s,box-shadow .15s}textarea{resize:vertical;line-height:1.6}input:hover,select:hover,textarea:hover{border-color:#8da5b8}input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(23,105,170,.13)}input[type=file]{padding:8px;background:#f9fbfc}input[type=checkbox],input[type=radio]{width:20px;min-height:20px;margin:1px 0 0;flex:0 0 20px;accent-color:var(--brand)}.check{display:flex;align-items:flex-start;gap:11px;padding:13px 14px;border:1px solid var(--line);border-radius:9px;background:#fbfcfd;font-weight:600}.check+.check{margin-top:9px}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0 20px}.choice-card{display:flex;align-items:flex-start;gap:11px;margin:0;padding:15px;border:1px solid var(--line-strong);border-radius:11px;background:#fbfdff;cursor:pointer}.choice-card:has(input:checked){border-color:var(--brand);background:var(--brand-soft);box-shadow:0 0 0 2px rgba(23,105,170,.08)}.choice-card strong,.choice-card small{display:block}.choice-card small{margin-top:3px;color:var(--muted);font-weight:500;line-height:1.45}.info-box{padding:12px 14px;border-left:4px solid var(--brand);border-radius:8px;background:var(--brand-soft);color:#294f6b;font-size:.88rem}[hidden]{display:none!important}
.button,button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:7px;margin-top:14px;padding:10px 18px;border:1px solid transparent;border-radius:9px;background:var(--brand);color:#fff;font:inherit;font-weight:800;text-decoration:none;cursor:pointer;box-shadow:0 4px 10px rgba(23,105,170,.14);transition:transform .12s,background .12s,box-shadow .12s}.button:hover,button:hover{background:var(--brand-dark);transform:translateY(-1px);box-shadow:0 6px 16px rgba(23,105,170,.2)}.button:focus-visible,button:focus-visible{outline:3px solid rgba(23,105,170,.25);outline-offset:2px}button:disabled{background:#b8c4ce;color:#f7f9fb;cursor:not-allowed;box-shadow:none;transform:none}.secondary{border-color:var(--line-strong);background:#fff;color:#334d60;box-shadow:none}.secondary:hover{background:#f2f6f9;color:var(--navy);box-shadow:none}.danger{background:var(--danger)}.action-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.action-row form{margin:0}.action-row .button,.action-row button{margin-top:0}.button-wide{width:100%}
.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:20px 0}.summary{padding:18px 20px;border:1px solid var(--line);border-radius:13px;background:#fff}.summary strong{display:block;color:var(--navy);font-size:1.7rem;line-height:1.2}.summary span{color:var(--muted);font-size:.86rem;font-weight:700}.table-wrap{overflow-x:auto;margin:0 -4px}table{width:100%;border-collapse:separate;border-spacing:0}th,td{padding:15px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}th{background:#f7f9fb;color:#4a6071;font-size:.8rem;font-weight:800;letter-spacing:.04em;white-space:nowrap}tbody tr:hover{background:#fbfdff}.contract-no{color:var(--muted);font-size:.78rem;font-weight:700}.contract-title{color:var(--navy);font-weight:800}.table-actions{display:flex;flex-wrap:wrap;gap:7px}.table-actions form{margin:0}.table-actions button{min-height:36px;margin:0;padding:7px 10px;font-size:.82rem}.empty{padding:54px 20px;text-align:center;color:var(--muted)}.status{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border-radius:999px;background:var(--brand-soft);color:var(--brand-dark);font-size:.78rem;font-weight:800;white-space:nowrap}.status::before{width:7px;height:7px;border-radius:50%;background:currentColor;content:""}.status-complete{background:var(--ok-soft);color:var(--ok)}.status-wait{background:var(--warn-soft);color:var(--warn)}.status-paper{background:#f0f1f3;color:#59636e}
.contract-meta{display:flex;flex-wrap:wrap;gap:9px;margin-top:10px}.meta-chip{padding:5px 9px;border-radius:7px;background:#f2f6f9;color:#52697b;font-size:.8rem;font-weight:700}.progress{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:22px 18px 12px;margin-bottom:22px;border-radius:14px;background:#fff;border:1px solid var(--line)}.progress.steps-3{grid-template-columns:repeat(3,minmax(0,1fr))}.progress-mobile-summary{display:none}.progress-item{position:relative;min-width:0;text-align:center;color:#8795a1;font-size:.76rem;font-weight:750}.progress-item::before{position:relative;z-index:2;width:28px;height:28px;display:grid;place-items:center;margin:0 auto 7px;border:2px solid #cbd5dd;border-radius:50%;background:#fff;content:attr(data-step)}.progress-item::after{position:absolute;z-index:1;top:13px;left:-50%;width:100%;height:2px;background:#dce3e8;content:""}.progress-item:first-child::after{display:none}.progress-item.is-done{color:var(--ok)}.progress-item.is-done::before{border-color:var(--ok);background:var(--ok);color:#fff;content:"✓"}.progress-item.is-done::after{background:var(--ok)}.progress-item.is-current{color:var(--brand)}.progress-item.is-current::before{border-color:var(--brand);box-shadow:0 0 0 5px rgba(23,105,170,.12);color:var(--brand)}.step-guide{padding:13px 15px;margin:10px 0 16px;border-radius:9px;background:var(--brand-soft);color:#214d6d;font-weight:700}.step-action{padding:15px 0}.step-action+.step-action{border-top:1px solid var(--line)}.step-label{display:block;margin-bottom:4px;color:var(--brand-dark);font-size:.78rem;font-weight:900;letter-spacing:.04em}.download-confirm.is-locked{opacity:.62}.download-confirm.is-locked .check{background:#f2f4f6}.document-card{overflow:hidden;padding:0}.document-head{display:flex;gap:14px;padding:22px 26px;border-bottom:1px solid var(--line);background:#fbfdff}.document-icon{width:42px;height:48px;flex:0 0 auto;display:grid;place-items:center;border-radius:7px;background:#eaf3fb;color:var(--brand);font-size:.72rem;font-weight:900}.document-body{padding:22px 26px 26px}.hash{padding:9px 11px;border-radius:7px;background:#f5f7f9;color:#61717f;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;word-break:break-all}.hash-details{margin:0 0 6px;border:1px solid var(--line);border-radius:8px;background:#f7f9fb;color:var(--muted);font-size:.78rem}.hash-details summary{padding:9px 11px;font-weight:700;cursor:pointer}.hash-details code{display:block;padding:0 11px 11px;font-size:.72rem;line-height:1.6;overflow-wrap:anywhere}.done{padding:10px 12px;border-radius:8px;background:var(--ok-soft);color:var(--ok);font-weight:800}.secure-note{display:flex;gap:10px;color:var(--muted);font-size:.82rem}.secure-note::before{content:"🔒"}
.party-panel{margin:18px 0;padding:18px;border:1px solid var(--line);border-radius:12px;background:#fbfdff}.party-panel h3{color:var(--navy)}
.form-section .choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:16px 0 22px}.form-section .choice-card{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:start;gap:12px;min-height:88px;margin:0;padding:17px 18px;border:1px solid var(--line-strong);border-radius:12px;background:#fbfdff;cursor:pointer}.form-section .choice-card input[type=radio]{width:20px!important;height:20px;min-height:20px!important;margin:2px 0 0!important;padding:0!important}.form-section .choice-card>span{display:block;min-width:0}.form-section .choice-card strong{display:block;line-height:1.45}.form-section .choice-card small{display:block;margin-top:5px;color:var(--muted);font-weight:500;line-height:1.55}.form-section .choice-card:has(input:checked){border-color:var(--brand);background:var(--brand-soft);box-shadow:0 0 0 2px rgba(23,105,170,.08)}[data-source-panel="template"]>label,[data-source-panel="template"] .party-panel label{display:block;width:100%}[data-source-panel="template"] textarea{display:block;width:100%;min-height:112px;margin-top:7px}
.dashboard-tabs{display:flex;gap:8px;margin:22px 0 16px;padding:5px;border:1px solid var(--line);border-radius:12px;background:#fff;overflow-x:auto}.dashboard-tab{display:flex;align-items:center;justify-content:center;gap:8px;min-width:140px;padding:10px 14px;border-radius:8px;color:#496174;font-weight:800;text-decoration:none;white-space:nowrap}.dashboard-tab:hover{background:#f2f6f9}.dashboard-tab.is-active{background:var(--brand);color:#fff}.dashboard-tab span{min-width:24px;padding:1px 7px;border-radius:999px;background:rgba(255,255,255,.22);font-size:.76rem;text-align:center}.dashboard-tab:not(.is-active) span{background:#eaf0f5}.deleted-meta{display:block;margin-top:7px;color:var(--muted);font-size:.76rem;line-height:1.55}.manage-menu>summary{min-height:36px;display:inline-flex;align-items:center;padding:7px 10px;border:1px solid var(--line-strong);border-radius:9px;background:#fff;color:var(--danger);font-size:.82rem;font-weight:800;cursor:pointer;list-style:none}.manage-menu>summary::-webkit-details-marker{display:none}.manage-menu form{width:230px;margin-top:8px;padding:12px;border:1px solid var(--line);border-radius:11px;background:#fff}.manage-menu label{margin:0;font-size:.8rem}.manage-menu select,.manage-menu input{min-height:40px;margin-top:5px}.manage-menu button{width:100%;margin-top:10px}.purge-warning{margin:0 0 10px;color:var(--danger);font-size:.78rem;font-weight:700;line-height:1.55}
.template-guide{margin:20px 0}.table-button{min-height:36px;margin:0;padding:7px 12px;font-size:.82rem}.template-fields{overflow:hidden;border:1px solid var(--line);border-radius:11px}.template-field-heading,.template-field-config{display:grid;grid-template-columns:64px 64px minmax(220px,1fr);align-items:center;gap:10px;padding:10px 14px}.template-field-heading{background:#f3f6f8;color:var(--muted);font-size:.78rem;font-weight:800}.template-field-config+.template-field-config{border-top:1px solid var(--line)}.template-field-config input{margin:0}.plain-check{display:flex;align-items:center;justify-content:center;margin:0}.plain-check input[type=checkbox]{margin:0}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.completion-shell{max-width:720px;margin:46px auto}.completion-card{padding:44px;text-align:center}.completion-mark{width:72px;height:72px;display:grid;place-items:center;margin:0 auto 18px;border-radius:50%;background:var(--ok-soft);color:var(--ok);font-size:2rem;font-weight:900}.completion-card h1{margin-bottom:8px}.completion-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:26px 0;text-align:left}.completion-details>div{padding:15px 17px;border:1px solid var(--line);border-radius:10px;background:#f7f9fb}.completion-details span{display:block;margin-bottom:4px;color:var(--muted);font-size:.76rem;font-weight:800}.completion-details strong{display:block;color:var(--navy);overflow-wrap:anywhere}.completion-card .button{margin-top:4px}.completion-card .secure-note{justify-content:center;margin:24px 0 0;line-height:1.7;text-align:left}
@media(max-width:760px){header .bar{min-height:60px;padding:0 17px}.brand{font-size:.9rem}.brand-mark{width:30px;height:30px}main{margin:24px auto 50px;padding:0 14px}.card{padding:21px 18px;border-radius:13px}.page-head,.contract-head{display:block}.page-head .action-row{margin-top:17px}.field-grid,.choice-grid,.summary-grid,.form-section .choice-grid,.completion-details{grid-template-columns:1fr}.summary-grid{gap:9px}.summary{display:flex;align-items:center;justify-content:space-between}.progress,.progress.steps-3{display:block;padding:16px 18px}.progress-mobile-summary{display:block}.progress-mobile-summary span{display:block;color:var(--brand);font-size:.72rem;font-weight:900;letter-spacing:.05em}.progress-mobile-summary strong{display:block;margin-top:2px;color:var(--navy);font-size:1rem}.progress-mobile-track{height:5px;margin-top:11px;overflow:hidden;border-radius:99px;background:#e4ebf0}.progress-mobile-track i{display:block;height:100%;border-radius:99px;background:var(--brand)}.progress-item{display:none}.document-head,.document-body{padding-left:18px;padding-right:18px}.completion-shell{margin:24px auto}.completion-card{padding:30px 20px}th:nth-child(2),td:nth-child(2){display:none}.table-actions{min-width:122px}.signer-page{font-size:16px}.signer-page header{position:static}.signer-page header .bar{padding-right:max(15px,env(safe-area-inset-right));padding-left:max(15px,env(safe-area-inset-left))}.signer-page .brand{min-width:0;gap:9px;font-size:.82rem}.signer-page .brand>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.signer-page main{margin:14px auto 36px;padding-right:max(10px,env(safe-area-inset-right));padding-left:max(10px,env(safe-area-inset-left))}.signer-page .card{padding:19px 16px;margin-bottom:14px;border-radius:12px}.signer-page .card-accent{padding-top:18px}.signer-page h1{font-size:1.38rem;line-height:1.4;overflow-wrap:anywhere}.signer-page h2{font-size:1.14rem}.signer-page .contract-head .status{margin-top:10px}.signer-page .contract-meta{gap:6px}.signer-page .meta-chip{max-width:100%;overflow-wrap:anywhere}.signer-page .notice{margin:0 0 14px;padding:12px;font-size:.9rem}.signer-page input,.signer-page select,.signer-page textarea{min-height:52px;font-size:16px}.signer-page input[inputmode=numeric]{font-size:1.25rem;letter-spacing:.28em}.signer-page .button,.signer-page button{width:100%;min-height:52px;margin-top:12px;padding:12px 15px}.signer-page .secondary{width:100%}.signer-page .check{min-height:54px;padding:13px 12px;line-height:1.55}.signer-page .check input[type=checkbox]{width:24px;min-height:24px;flex-basis:24px}.signer-page .step-guide{padding:12px;margin-bottom:12px;font-size:.9rem;line-height:1.65}.signer-page .step-action{padding:13px 0}.signer-page .step-action .button,.signer-page .step-action button{margin-top:8px}.signer-page .document-card{padding:0}.signer-page .document-head{padding:17px 16px}.signer-page .document-body{padding:16px}.signer-page .document-icon{width:38px;height:44px}.signer-page .hash-details{font-size:.75rem}.signer-page .download-confirm.is-locked{opacity:1}.signer-page .download-confirm.is-locked .helper{color:#6b7680}.signer-page .completion-shell{margin:14px auto}.signer-page .completion-card{padding:28px 18px}.signer-page .completion-card .button{width:100%}.signer-page .completion-mark{width:64px;height:64px}.signer-page .secure-note{font-size:.78rem}.signer-page .divider{margin:20px 0}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media(max-width:480px){.template-field-heading,.template-field-config{grid-template-columns:46px 46px minmax(150px,1fr);gap:6px;padding:9px 8px}}

/* 2026-09-30 改善：詳細画面・検索・履歴・進捗バー（CSPで style 属性が使えないためクラスで幅を指定） */
.pct-20{width:20%}.pct-35{width:35%}.pct-40{width:40%}.pct-60{width:60%}.pct-65{width:65%}.pct-80{width:80%}.pct-100{width:100%}
.status-draft{background:#eef1f5;color:#40566b}
a.summary{display:block;color:inherit;text-decoration:none;transition:border-color .15s,box-shadow .15s}a.summary:hover{border-color:var(--brand);box-shadow:0 4px 12px rgba(23,105,170,.1)}
.summary-grid-4{grid-template-columns:repeat(4,1fr)}
.search-bar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;margin:0 0 18px}.search-bar .search-field{flex:1 1 320px;margin:0}.search-bar .search-state{flex:0 0 200px;margin:0}.search-bar button,.search-bar .button{margin:0}
.pager{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px}.pager a,.pager span{min-width:38px;padding:7px 11px;border:1px solid var(--line);border-radius:8px;text-align:center;text-decoration:none;color:var(--brand-dark);font-weight:700}.pager .is-active{background:var(--brand);border-color:var(--brand);color:#fff}
.deleted-meta.is-expired{color:var(--danger);font-weight:700}
a.contract-no,a.contract-title{color:inherit;text-decoration:none}a.contract-no:hover,a.contract-title:hover{color:var(--brand);text-decoration:underline}
.detail-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:20px}.detail-grid .card{margin-bottom:20px}
.detail-list{display:grid;grid-template-columns:130px 1fr;gap:10px 14px;margin:14px 0 0}.detail-list dt{color:var(--muted);font-size:.86rem;font-weight:700}.detail-list dd{margin:0;word-break:break-all}
.doc-list{margin:14px 0 0;padding:0;list-style:none}.doc-list li{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.doc-list li:last-child{border-bottom:0}.doc-list .button{margin:0;flex:0 0 auto}.doc-list code{word-break:break-all;font-size:.75rem}
.send-panel p{margin:10px 0}.send-panel .action-row form{margin:0}
.timeline{margin:14px 0 0;padding:0;list-style:none}.timeline li{display:grid;grid-template-columns:150px 1fr;gap:2px 14px;padding:10px 0;border-bottom:1px solid var(--line)}.timeline li:last-child{border-bottom:0}.timeline .timeline-time{grid-row:span 2;color:var(--muted);font-size:.84rem}.timeline .muted{font-size:.8rem}
.contact-box{margin-top:18px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:#f9fbfc;font-size:.9rem;line-height:1.7}
@media(max-width:760px){.summary-grid-4{grid-template-columns:repeat(2,1fr)}.detail-grid{grid-template-columns:1fr;gap:0}.detail-list{grid-template-columns:1fr;gap:2px}.detail-list dd{margin-bottom:8px}.timeline li{grid-template-columns:1fr}.timeline .timeline-time{grid-row:auto}.search-bar .search-state{flex:1 1 100%}.doc-list li{flex-direction:column}}
/* 先頭にスマホ用の要約があるため :first-child が効かない。最初のステップの左側の線を消す */
.progress-mobile-summary+.progress-item::after{display:none}
