:root{--navy:#18233a;--ink:#283247;--muted:#6e7685;--line:#e6e8ed;--bg:#f7f6f3;--card:#fff;--accent:#ab6b63;--accent-soft:#f5e9e6;--ok:#2f7b58;--ok-soft:#e8f4ed;--warn:#9b5b20;--warn-soft:#fff1de;--blue:#3d6488;--blue-soft:#eaf1f7}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;line-height:1.7}.wrap{width:min(1120px,calc(100% - 32px));margin:auto}.narrow{width:min(620px,calc(100% - 32px));padding-top:56px}.topbar{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.topbar-inner{min-height:64px;display:flex;align-items:center;gap:16px}.brand{font-weight:800;color:var(--navy);text-decoration:none;font-size:20px}.version{font-size:12px;color:var(--muted)}nav{margin-left:auto;display:flex;align-items:center;gap:18px}nav a,.linkbtn{border:0;background:none;color:var(--ink);text-decoration:none;font:inherit;cursor:pointer;padding:0}.inline{display:inline}.page-title{margin:34px 0 20px}.page-title h1,.review-head h1{margin:4px 0;font-size:30px;color:var(--navy)}.page-title p{margin:0;color:var(--muted)}.split{display:flex;justify-content:space-between;align-items:flex-end;gap:16px}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:24px;box-shadow:0 4px 16px rgba(24,35,58,.035);margin-bottom:20px}.card h1,.card h2{color:var(--navy);margin-top:0}.setup-card{margin-bottom:56px}.login-card{width:min(520px,100%);margin:50px auto}.grid2,.detail-grid,.review-actions{display:grid;grid-template-columns:1fr 1fr;gap:20px}label{display:block;font-weight:700;margin-bottom:18px}label b{color:var(--accent);font-size:12px}label small,.note,.privacy-note{font-weight:400;color:var(--muted);font-size:13px}input[type=text],input[type=email],input[type=password],input[type=url],input[type=file],textarea{width:100%;margin-top:7px;padding:12px 13px;border:1px solid #ccd1d9;border-radius:9px;background:#fff;color:var(--ink);font:inherit}textarea{resize:vertical}.button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:9px;padding:11px 17px;text-decoration:none;cursor:pointer;font-weight:800;font-size:14px}.button:disabled{opacity:.45;cursor:not-allowed}.primary{background:var(--navy);color:#fff}.secondary{background:#eef0f3;color:var(--navy)}.approve{background:var(--ok);color:#fff;width:100%;font-size:16px}.flash{border-radius:10px;padding:13px 15px;margin:20px 0;white-space:normal;word-break:break-word}.flash.success{background:var(--ok-soft);color:#205d40}.flash.error{background:#fde9e8;color:#8b332d}.flash.warning{background:var(--warn-soft);color:#784312}.flash.info{background:var(--blue-soft);color:#2c5879}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.stat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px;text-align:center}.stat strong{display:block;font-size:27px;color:var(--navy)}.stat span{font-size:12px;color:var(--muted)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:700px}th,td{padding:13px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{font-size:12px;color:var(--muted);font-weight:700}td a{color:var(--navy)}.empty{text-align:center;color:var(--muted);padding:35px}.status{display:inline-block;padding:4px 9px;border-radius:999px;font-size:12px;font-weight:800}.status.muted{background:#eef0f3;color:#606775}.status.wait{background:var(--blue-soft);color:var(--blue)}.status.warn{background:var(--warn-soft);color:var(--warn)}.status.ok{background:var(--ok-soft);color:var(--ok)}.summary{display:grid;grid-template-columns:145px 1fr;gap:7px 13px;margin:0}.summary dt{font-size:13px;color:var(--muted)}.summary dd{margin:0}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.break{word-break:break-all}.section-head{display:flex;justify-content:space-between;align-items:center;gap:14px}.timeline article{border-left:3px solid var(--accent-soft);padding:0 0 10px 16px;margin:0 0 16px}.timeline-head{font-size:12px;color:var(--muted);font-weight:700}.review-head{text-align:center;margin:36px 0 20px}.eyebrow{font-size:13px;color:var(--accent);font-weight:800}.meta-line{color:var(--muted)}.preview-card{text-align:center}.preview-image-stage{width:min(520px,100%);height:320px;margin:0 auto;display:flex;align-items:center;justify-content:center;overflow:hidden}.preview-image{display:block;max-width:520px;max-height:320px;width:auto;height:auto;border-radius:8px;cursor:zoom-in}.preview-video{width:100%;max-height:72vh;border-radius:8px;background:#111}.preview-pdf{width:100%;height:72vh;border:1px solid var(--line);border-radius:8px}.preview-label{margin-top:6px;font-weight:800;color:var(--navy)}.preview-hint{margin-top:2px;color:var(--muted);font-size:12px}.check{font-weight:500;display:flex;align-items:flex-start;gap:9px;background:#f8f8f7;padding:12px;border-radius:8px}.check input{margin-top:7px;flex:0 0 auto}.confirmation-list{display:grid;gap:9px;margin:18px 0}.confirmation-list h3{margin:0 0 2px;color:var(--navy);font-size:16px}.customer-review-message{background:#faf7f4;border:1px solid #eee3dc;border-radius:10px;padding:15px 16px;margin-bottom:22px;text-align:left}.customer-review-message p{margin:0}.customer-review-message p+p{margin-top:8px}.customer-name{font-weight:800;color:var(--navy);font-size:17px}.preview-modal{position:fixed;inset:0;z-index:10000;background:#fff;overflow:auto}.preview-modal[hidden]{display:none}.preview-modal-close{position:fixed;top:16px;right:18px;z-index:10001;width:44px;height:44px;border:1px solid #d7dbe2;border-radius:50%;background:#fff;color:var(--navy);font-size:28px;line-height:1;cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.08)}.preview-modal-scroll{min-width:100%;width:max-content;min-height:100%;padding:72px 32px 40px;text-align:center}.preview-modal-figure{margin:0 auto;width:max-content;text-align:center}.preview-modal-image{display:block;max-width:none;max-height:none;width:auto;height:auto;margin:0 auto}.preview-modal-label{margin-top:6px;font-weight:800;color:var(--navy)}.preview-modal-lock{overflow:hidden}.privacy-note{text-align:center;margin:25px 0 50px}.centered{text-align:center;max-width:680px;margin:50px auto}.success-icon{width:68px;height:68px;border-radius:50%;background:var(--ok-soft);color:var(--ok);display:grid;place-items:center;font-size:36px;margin:0 auto 12px}.centered .summary{text-align:left;max-width:520px;margin:20px auto}.footer{text-align:center;color:var(--muted);font-size:12px;padding:36px 16px 50px}.note{background:#f2f3f5;border-radius:9px;padding:12px;margin-top:18px}@media(max-width:760px){.wrap{width:min(100% - 22px,1120px)}.topbar-inner{min-height:56px}.version{display:none}nav{gap:12px;font-size:13px}.grid2,.detail-grid,.review-actions{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}.split{align-items:flex-start;flex-direction:column}.page-title{margin-top:22px}.page-title h1,.review-head h1{font-size:25px}.card{padding:18px;border-radius:12px}.summary{grid-template-columns:110px 1fr}.preview-pdf{height:60vh}.button{min-height:44px}.review-actions .card{margin-bottom:0}}
.design-no-box{display:flex;gap:18px;align-items:center;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:#fafafa;margin:4px 0 22px}.design-no-box strong{min-width:120px;color:var(--navy)}.design-no-box span{color:var(--muted)}.final-design-block{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0;margin:8px 0 22px}.final-design-block h2{margin:0 0 4px}.subtext{margin:0 0 14px;color:var(--muted);font-size:13px}.design-table-wrap{overflow:auto;margin-bottom:12px}.design-table{min-width:680px}.design-table input[type=text],.design-table input[type=file]{margin-top:0}.danger-lite{background:#fff0ef;color:#933f39;border:1px solid #efc4c0}.muted-inline{color:var(--muted);font-weight:400}.design-preview-list{display:grid;gap:26px}.design-preview-item{padding-bottom:26px;border-bottom:1px solid var(--line)}.design-preview-item:last-child{border-bottom:0;padding-bottom:0}.design-preview-item h3{margin:0 0 12px;color:var(--navy)}@media(max-width:760px){.design-no-box{align-items:flex-start;flex-direction:column;gap:4px}.design-table{min-width:600px}.preview-image-stage{height:320px}.preview-image{max-width:100%;max-height:320px}.preview-modal-scroll{padding:68px 16px 28px}}
.pwa-install-card{border-color:#ead7cf;background:linear-gradient(180deg,#fff 0%,#fffaf7 100%)}.pwa-install-head{display:flex;align-items:center;gap:16px;margin-bottom:16px}.pwa-install-head h2{margin:0 0 2px}.pwa-install-icon{width:64px;height:64px;border-radius:16px;box-shadow:0 4px 14px rgba(143,63,47,.14)}.pwa-install-button{background:#C86B4A;color:#fff}.pwa-install-button:hover{background:#8F3F2F}.pwa-install-status{margin:10px 0 0;color:var(--muted);font-size:13px}@media(max-width:760px){.pwa-install-head{align-items:flex-start}.pwa-install-icon{width:58px;height:58px}.pwa-install-button{width:100%}}
.page-actions{display:flex;gap:10px;align-items:center}.danger-zone{border-color:#efc4c0;background:#fffafa}.danger-zone h2{color:#8b332d}.danger{background:#a33f37;color:#fff}.danger:hover{background:#87342e}.danger-check{background:#fff0ef;border:1px solid #efc4c0}@media(max-width:760px){.page-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.page-actions .button{width:100%}}

.trash-actions{display:flex;align-items:center;gap:8px;white-space:nowrap}.danger{background:#a33b35;color:#fff}.danger:hover{background:#8f302b}@media(max-width:760px){.trash-actions{align-items:stretch;flex-direction:column}.trash-actions .button{width:100%}}


/* v0.1.0-dev30: legal/privacy + shipment */
/* v0.1.0-dev31: business-name auto-sync + locked legal editors */
.legal-editor textarea{width:100%;min-height:360px;font-family:inherit;line-height:1.8;resize:vertical}
.legal-editor small{display:block;margin-top:6px;color:#6b625d;line-height:1.6}
.legal-public{max-width:900px;margin:28px auto}
.legal-public h1{margin-bottom:8px}
.legal-meta{padding:12px 14px;background:#faf6f3;border-radius:10px;line-height:1.7;color:#635750}
.legal-body{white-space:normal;line-height:1.9;margin-top:22px;font-size:15px}
.shipment-card select,.shipment-card input[type="text"],.shipment-card input[type="url"]{width:100%}
.shipment-card .grid2{align-items:end}
@media(max-width:700px){.legal-editor textarea{min-height:300px}.legal-public{margin:14px 0}}


/* v0.1.0-dev31: legal docs view mode + explicit edit mode */
.legal-head-actions,.legal-save-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.legal-save-actions{justify-content:flex-end;margin-top:12px}
.legal-editor.is-locked input[readonly],.legal-editor.is-locked textarea[readonly]{background:#f1f2f4;color:#6e7685;border-color:#dfe2e7;cursor:default}
.legal-editor.is-locked textarea[readonly]{resize:none}
.legal-editor.is-locked .legal-save-actions{display:none}
.legal-editor.is-editing [data-legal-edit-toggle]{opacity:.6}
.legal-editor input[readonly]:not([data-legal-editable]){background:#f1f2f4;color:#6e7685;border-color:#dfe2e7}
@media(max-width:760px){.legal-head-actions{width:100%;justify-content:flex-start}.legal-head-actions .button{flex:1}.legal-save-actions .button{flex:1}}

/* v0.1.0-dev32: stack legal action buttons on smartphones */
@media(max-width:760px){.legal-editor .section-head{align-items:stretch;flex-direction:column}.legal-head-actions{width:100%;display:grid;grid-template-columns:1fr;gap:10px}.legal-head-actions .button{width:100%;flex:none;white-space:normal;text-align:center}}


/* v0.1.0-dev33: smartphone top navigation readability */
@media(max-width:760px){
  .topbar-inner{min-height:auto;display:flex;flex-direction:column;align-items:stretch;gap:7px;padding:8px 0 7px}
  .brand{display:block;font-size:20px;line-height:1.25;white-space:nowrap}
  .topbar-inner nav{margin-left:0;width:100%;display:flex;align-items:center;gap:6px;overflow-x:auto;overflow-y:hidden;white-space:nowrap;padding:1px 0 3px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .topbar-inner nav::-webkit-scrollbar{display:none}
  .topbar-inner nav a,.topbar-inner nav .linkbtn{flex:0 0 auto;white-space:nowrap;font-size:13px;line-height:1.2;padding:8px 10px;border-radius:8px;background:#f2f3f5;color:var(--navy)}
  .topbar-inner nav .inline{flex:0 0 auto;margin:0}
}

/* v0.1.0-dev34: admin-only disclaimer for legal templates */
.legal-template-warning{box-sizing:border-box;display:block;color:#9f2323;background:#fff2f2;border:1px solid #e7a7a7;border-left:5px solid #c43f3f;border-radius:10px;padding:15px 16px;margin:12px 0 22px;font-weight:700;line-height:1.75;overflow-wrap:anywhere}


/* v0.1.0-dev37: checkboxes in shipment forms must never inherit 100% input width.
   Preserve readable horizontal checkbox/description layout on PC and mobile. */
.shipment-card .check{display:flex;align-items:flex-start;gap:10px;min-width:0;width:100%;height:auto}
.shipment-card .check input[type="checkbox"]{box-sizing:border-box;display:block;inline-size:18px;block-size:18px;min-inline-size:18px;min-block-size:18px;flex:0 0 18px;margin:4px 0 0;padding:0;accent-color:var(--navy)}
.shipment-card .check span{display:block;flex:1 1 auto;min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere;line-height:1.65}

/* v0.1.0-dev38: 発送管理と購入後フォローの独立UI */
.shipment-card input[type="number"],.shipment-card select{width:100%;margin-top:7px;padding:12px 13px;border:1px solid #ccd1d9;border-radius:9px;background:#fff;color:var(--ink);font:inherit}
.followup-manager{border-left:5px solid #789b8e}
.followup-indicator{display:flex;flex-wrap:wrap;align-items:center;gap:10px;background:#f2f7f4;padding:11px 13px;border-radius:9px;margin:0 0 20px}
.followup-indicator a{margin-left:auto;font-size:13px}
.followup-day{border:1px solid var(--line);border-radius:11px;padding:13px;min-width:0;margin:0 0 14px}
.followup-day legend{font-weight:700;padding:0 6px;color:var(--navy)}
.followup-radio{display:flex;align-items:flex-start;gap:10px;font-weight:500;padding:8px 6px;margin:0;border-radius:6px}
.followup-radio input[type="radio"]{flex:0 0 18px;width:18px;height:18px;margin:4px 0 0;accent-color:var(--navy)}
.followup-radio span{flex:1;min-width:0;line-height:1.6;overflow-wrap:anywhere}
.followup-schedule input[type="number"]{width:100%;padding:12px 13px;border:1px solid #ccd1d9;border-radius:9px;font:inherit;margin:7px 0 4px}
.followup-consent{display:flex;align-items:flex-start;gap:10px;min-width:0;margin:14px 0;font-weight:500}
.followup-consent input[type="checkbox"]{box-sizing:border-box;flex:0 0 18px;width:18px;height:18px;min-width:18px;min-height:18px;margin:4px 0 0;padding:0;accent-color:var(--navy)}
.followup-consent span{display:block;flex:1;min-width:0;overflow-wrap:anywhere;line-height:1.65}
.followup-preview{margin:18px 0;border:1px solid var(--line);border-radius:10px;padding:12px 16px}
.followup-preview summary,.followup-manual summary{cursor:pointer;color:var(--navy);font-weight:700}
.followup-preview pre{font-family:inherit;font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere;background:#f8f8f8;border-radius:8px;padding:13px}
.followup-send-now{border-top:1px dashed #dfe4e6;margin-top:18px;padding-top:14px}
.followup-answers{display:grid;gap:10px}.followup-answers article{border:1px solid var(--line);background:#fafafa;padding:12px 14px;border-radius:9px}
.followup-answers article span{color:var(--muted);font-size:12px;margin-left:10px}.followup-answers article p{margin:6px 0}
.followup-manual{background:#fbfbfa}.followup-manual[open] summary{margin-bottom:14px}
.followup-public{max-width:740px;margin:24px auto}.followup-public .summary{margin:18px 0}.followup-public form{margin:18px 0}
@media(max-width:760px){.followup-indicator a{margin-left:0}.followup-public{margin:14px 0}.followup-send-now .button{width:100%}}

.followup-fixed-qty{border:1px solid var(--line);border-radius:10px;padding:13px 15px;margin-bottom:14px}.followup-fixed-qty strong{color:var(--navy)}.followup-fixed-qty p{font-size:22px;font-weight:800;margin:5px 0}.followup-fixed-qty small{display:block;color:var(--muted);font-size:12px;font-weight:400}

/* dev39 顧客一覧の自動配信一括設定を補助カードとして控えめに表示 */
.followup-global .subtext{line-height:1.8}.followup-global .button{margin-top:8px;}
.mobile-customer-link{display:none}
.customer-followup-list{display:grid;gap:12px}
.customer-followup-item{border:1px solid #e6e7ed;border-radius:12px;padding:14px;display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap}
.customer-followup-item .subtext{margin:5px 0 0}
@media(max-width:650px){.mobile-customer-link{display:block;margin-top:8px;font-size:13px}.customer-followup-item .button{width:100%;text-align:center}}

/* dev40: clearly visible customer-level send-now CTA; optional consent at approval. */
.followup-customer-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.followup-customer-actions .button{white-space:normal;text-align:center}
.followup-optin-public{border:1px solid #c9dbd4;background:#f5faf7;border-radius:10px;padding:13px 15px;margin:16px 0}
.followup-optin-public .check{display:flex;gap:10px;align-items:flex-start}
.followup-optin-public .check input[type="checkbox"]{width:18px;min-width:18px;flex:0 0 18px;margin-top:4px}
.followup-optin-public .check span{flex:1;min-width:0;overflow-wrap:anywhere}
.followup-permission-ok{border:1px solid #a3cbb9;background:#f1faf4;color:#24563f;border-radius:9px;padding:12px 14px;font-weight:700}
@media(max-width:650px){.followup-customer-actions{width:100%;display:flex;flex-direction:column;align-items:stretch}.followup-customer-actions .button{width:100%}}

/* dev41: conspicuous default-on mailing choice without coupling it to approval */
.followup-optin-public h3{margin:0 0 8px;color:var(--navy);font-size:18px}
.followup-optin-public p{margin:7px 0 12px;line-height:1.7;font-weight:400}
.followup-optin-public .check{margin:12px 0}
.followup-optin-public .followup-optin-note{font-size:13px;border-left:3px solid #789b8e;padding:9px 11px;background:#fff;line-height:1.8}


/* dev42: existing customer search on the New Proof form. Readable on narrow screens. */
.existing-customer-picker{position:relative;max-width:760px;border:1px solid #cbded6;background:#f6faf8;border-radius:12px;padding:16px 18px;margin:0 0 22px}
.existing-customer-picker h2{font-size:19px;margin:0 0 10px}
.existing-customer-picker label{display:block;margin:0;font-weight:700}
.existing-customer-picker input[type="search"]{display:block;width:100%;box-sizing:border-box;margin:7px 0 0;background:#fff;border:1px solid #abbfb6;border-radius:9px;padding:12px;font:inherit;max-width:100%}
.existing-customer-results{position:relative;z-index:2;background:#fff;border:1px solid #abbfb6;border-radius:9px;max-height:290px;overflow-y:auto;margin-top:5px;box-shadow:0 4px 10px #22332615}
.existing-customer-results[hidden],.existing-customer-option[hidden],.existing-customer-empty[hidden]{display:none !important}
.existing-customer-option{display:flex;flex-direction:column;align-items:flex-start;gap:3px;width:100%;border:0;border-bottom:1px solid #e9eeed;background:#fff;padding:11px 13px;cursor:pointer;text-align:left;font:inherit;color:var(--ink);line-height:1.45}
.existing-customer-option span{font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.existing-customer-option:is(:hover,:focus-visible){outline:2px solid #3d7468;outline-offset:-2px;background:#edf7f1}
.existing-customer-empty{padding:12px;margin:0;color:var(--muted)}
.existing-customer-picker .subtext{margin:12px 0 0;line-height:1.65;font-size:13px}
@media(max-width:650px){.existing-customer-picker{padding:13px 12px;margin-bottom:18px}.existing-customer-picker h2{font-size:17px}}


/* dev43: public customer review is an approval-only screen; no half-width gap. */
.review-actions.review-approve-only{display:block;width:min(850px,100%);margin:0 auto;}
.review-actions.review-approve-only>.card{width:100%;}
.review-contact-note{font-size:14px;color:var(--muted);line-height:1.8;margin:16px 0 0;padding:12px 0 0;border-top:1px solid var(--line);}

/* dev44: ひとつの顧客詳細に情報・編集・案件を集約。開くボタンは重複させない。 */
.customer-directory>label{display:block;margin:0 0 14px}.customer-directory input[type=search]{display:block;width:100%;margin:7px 0 0;padding:12px;border:1px solid #ccd1d9;border-radius:9px;font:inherit;background:#fff}
.customer-directory-list{display:grid}.customer-directory-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:15px 8px;border-top:1px solid var(--line);color:var(--ink);text-decoration:none;border-radius:6px}
.customer-directory-row:hover,.customer-directory-row:focus-visible{background:#f5f8f6;outline-offset:0}.customer-directory-row strong{display:block;font-size:17px;color:var(--navy)}
.customer-directory-row small{display:block;font-size:13px;color:var(--muted);overflow-wrap:anywhere;line-height:1.5;font-weight:400}.directory-count{white-space:nowrap;font-size:13px;color:var(--muted)}.directory-count span{font-size:20px;margin-left:6px;color:var(--navy)}
.customer-directory-row[hidden],.customer-directory .empty[hidden],.customer-email-warning[hidden]{display:none!important}
.customer-automation{background:#fcfcfb}.customer-automation>summary,.collapsible-history>summary{list-style:none;cursor:pointer;font-size:16px;font-weight:700;color:var(--navy)}
.customer-automation>summary::-webkit-details-marker,.collapsible-history>summary::-webkit-details-marker{display:none}
.customer-automation>summary::after,.collapsible-history>summary::after{content:'⌄';float:right}.customer-automation[open]>summary::after,.collapsible-history[open]>summary::after{content:'⌃'}
.customer-automation-body{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.automation-status{font-size:12px;background:#e9f0eb;border-radius:99px;padding:4px 9px;margin-left:10px}
.back-link{display:inline-block;margin-bottom:14px;text-decoration:none;color:var(--blue);font-size:14px;font-weight:700}
.customer-profile .summary{margin:0 0 15px}.customer-edit{border-top:1px solid var(--line);padding-top:12px}.customer-edit>summary,.technical-details>summary{cursor:pointer;font-size:14px;font-weight:700;color:var(--blue)}
.customer-edit>form{padding-top:18px}.customer-email-warning{background:#fff3e8;border:1px solid #ecc4a3;border-radius:9px;margin-bottom:18px;padding:13px}.customer-email-warning p{margin:0 0 10px}.customer-email-warning label{margin:0}
.customer-project-list{display:grid}.customer-project-row{border-top:1px solid var(--line);padding:15px 2px;display:flex;align-items:center;justify-content:space-between;gap:16px;min-width:0}.customer-project-main{min-width:0;flex:1}
.customer-project-name{font-weight:750;font-size:17px;color:var(--navy);text-decoration:none}.customer-project-name:hover{text-decoration:underline}.customer-project-name span{font-size:23px;vertical-align:middle}.customer-project-row .subtext{margin:5px 0 0;line-height:1.75}.customer-address-notice{font-size:12px;color:var(--warn);margin:7px 0 0}.project-count{white-space:nowrap;color:var(--muted)}
.current-design-list{display:grid;gap:10px;margin-top:14px}.current-design-item{border:1px solid var(--line);border-radius:10px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px}.current-design-item strong{display:block}.current-design-item span{display:block;color:var(--muted);font-size:12px;overflow-wrap:anywhere}
.technical-details{border-top:1px solid var(--line);padding-top:13px;margin-top:15px}.technical-details[open] summary{margin-bottom:12px}.collapsible-history[open]>summary{margin-bottom:18px}.collapsible-history.danger-zone>summary{color:#a23935}
@media(max-width:650px){.customer-directory-row{padding:15px 0}.directory-count{align-self:center}.customer-project-row{flex-direction:column;align-items:stretch}.customer-project-send{width:100%}.current-design-item{flex-wrap:wrap}.current-design-item .button{width:100%}.customer-profile .summary{grid-template-columns:95px 1fr}}
.customer-snapshot-note{font-size:13px;color:#754819;border-left:3px solid #e1bf9a;background:#fff7e8;padding:10px 13px;border-radius:6px;margin:-4px 0 19px;line-height:1.7}


/* dev45: PC 2:1 preview/confirm layout; a compact full-width mobile design preview. */
.proof-main-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(285px,1fr);gap:20px;align-items:start}
.proof-main-grid>.card{min-width:0;width:100%;margin-bottom:20px}
.proof-send-card{position:relative}.proof-send-card .button{width:100%;text-align:center;min-height:46px;white-space:normal}
.admin-design-preview-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,225px),1fr));gap:14px}
.admin-design-preview-item{border:1px solid var(--line);background:#fcfcfb;border-radius:11px;padding:12px;margin:0;min-width:0;display:flex;flex-direction:column;gap:7px}
.admin-design-preview-item figcaption{font-weight:800;color:var(--navy);line-height:1.45;overflow-wrap:anywhere}
.admin-preview-stage{height:225px;min-width:0;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:8px;background:#f1f2f2}
.admin-preview-image{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;cursor:zoom-in;display:block;border-radius:5px}
.admin-preview-document{position:relative;display:block;height:225px;background:#f2f3f4;border:1px solid var(--line);border-radius:8px;overflow:hidden;color:var(--navy)}
.admin-preview-document iframe{width:100%;height:100%;border:0;pointer-events:none}
.admin-preview-document span{position:absolute;bottom:0;left:0;right:0;text-align:center;background:#18233ae0;color:#fff;font-size:13px;font-weight:700;padding:6px 2px}
.admin-preview-video{display:block;width:100%;max-height:225px;min-height:100px;background:#191919;border-radius:8px}
.admin-preview-open{font-size:13px;color:var(--blue);font-weight:700}
.proof-main-grid .technical-details{margin-top:18px}
@media(max-width:899px){.proof-main-grid{grid-template-columns:1fr;gap:0}.proof-main-grid>.card{margin-bottom:15px}}
@media(max-width:600px){.admin-design-preview-list{grid-template-columns:1fr}.admin-design-preview-item{padding:10px}.admin-preview-stage{height:210px}.admin-preview-document{height:240px}.admin-preview-image{max-width:100%;max-height:100%}}

/* v0.1.0-dev48: single-panel office / court settings */
.court-suggestion{border:1px solid #e6ded2;border-radius:11px;background:#faf8f5;padding:14px 16px;margin:0 0 18px}
.court-suggestion label{margin-bottom:6px}
.court-suggestion .button{margin:6px 0 0}
.court-warning,.court-legal-status{font-size:13px;line-height:1.7;color:#615a53;margin:10px 0 0}
.court-warning a{color:#2d5786;font-weight:700}
.settings-security{border-top:1px solid var(--line);padding-top:13px;margin:8px 0 19px}
.settings-security summary{font-size:14px;font-weight:700;cursor:pointer;color:var(--navy)}
.settings-security label{margin-top:12px}
@media(max-width:760px){.court-suggestion .button{width:100%}}

/* dev51: court is read-only and muted by default; explicit edit button remains beside it on mobile. */
.court-input-row{display:flex;align-items:stretch;gap:9px;min-width:0;margin-top:7px}
.court-input-row input[data-court-choice]{width:auto;min-width:0;flex:1 1 auto;margin:0}
.court-input-row input[data-court-choice][readonly]{background:#e9eaed;color:#404853;border-color:#cad0d6;opacity:1;cursor:default}
.court-input-row input[data-court-choice]:not([readonly]){background:#fff;border-color:#7b9bb3;box-shadow:0 0 0 2px #e9f0f6}
.court-suggestion .court-edit-toggle{flex:0 0 auto;width:auto;min-width:68px;min-height:45px;margin:0;padding:9px 13px;white-space:nowrap}
.court-note{display:block;margin-top:7px;font-size:12px;color:#62666e;line-height:1.6}
@media(max-width:420px){.court-suggestion{padding:12px}.court-suggestion .court-edit-toggle{padding:9px 10px;font-size:13px;min-width:62px}}

/* dev53: お客様画面は送信元の事業者名を主役に。校了DIMはフッターに小さくPR */
.public-topbar{position:relative;background:#fff}
.public-topbar .topbar-inner{min-height:62px;justify-content:center;padding:11px 0}
.public-sender-name{display:block;color:var(--navy);font-size:clamp(16px,2vw,21px);font-weight:800;line-height:1.45;text-align:center;overflow-wrap:anywhere}
.public-footer{padding:24px 16px 34px;border-top:1px solid #eef0f2;color:#8c9096}
.public-credit-link{display:inline-flex;align-items:center;justify-content:center;gap:5px;text-decoration:none;color:#8c9096;font-size:11px;font-weight:500;line-height:1.5;opacity:.75;transition:opacity .15s ease}
.public-credit-link img{display:block;width:18px;height:18px;object-fit:contain;flex:none}
.public-credit-link:hover,.public-credit-link:focus-visible{opacity:1;color:var(--navy);text-decoration:underline}
@media(max-width:760px){.public-topbar .topbar-inner{min-height:55px;padding:9px 0}.public-footer{padding:20px 12px 30px}.public-credit-link img{width:17px;height:17px}}

/* dev55: existing 校了DIM logo preceding linked app name, admin header only. */
.admin-page .topbar .brand{display:inline-flex;align-items:center;gap:9px;flex:0 0 auto;white-space:nowrap;line-height:1.3}
.admin-page .topbar .brand-logo{display:block;width:32px;height:32px;object-fit:contain;flex:0 0 32px}
@media(max-width:760px){.admin-page .topbar .brand{display:inline-flex;gap:8px}.admin-page .topbar .brand-logo{width:29px;height:29px;flex-basis:29px}}


/* dev56: manager-facing visual polish. Public review/confirmation pages retain their established design. */
body.admin-page{background:radial-gradient(ellipse 920px 360px at 100% 0,rgba(183,133,111,.075),transparent 74%),linear-gradient(180deg,#faf9f7 0,#f6f5f3 500px,#f7f6f3 100%)}
.admin-page .topbar{border-bottom:1px solid #e8e4df;background:rgba(255,255,255,.98);box-shadow:0 2px 13px rgba(24,35,58,.035)}
.admin-page .topbar .brand{letter-spacing:.012em}
.admin-page .topbar .brand-logo{border-radius:10px;box-shadow:0 2px 9px rgba(109,72,59,.11)}
.admin-page .topbar nav a,.admin-page .topbar nav .linkbtn{transition:background .16s,color .16s}
.admin-page .topbar nav a:hover,.admin-page .topbar nav .linkbtn:hover{color:#8e5148;background:#f9f2ef}
.admin-page .topbar nav a:focus-visible,.admin-page .topbar nav .linkbtn:focus-visible{outline:2px solid #a56d62;outline-offset:3px}
.admin-page .page-title{position:relative;padding-left:17px}
.admin-page .page-title::before{content:'';position:absolute;left:0;top:7px;width:4px;height:39px;border-radius:5px;background:linear-gradient(180deg,#c98b79,#d9bbaa)}
.admin-page .page-title h1{letter-spacing:-.018em;line-height:1.3}
.admin-page .page-title p{line-height:1.75}
.admin-page .card{border-color:#e9e4df;box-shadow:0 5px 19px rgba(36,43,56,.045);border-radius:15px}
.admin-page .card:not(.danger-zone)>h2:first-child{padding-left:12px;border-left:3px solid #c99381;line-height:1.4}
.admin-page .card .subtext{line-height:1.75}
.admin-page .button{transition:background .16s,box-shadow .16s,transform .16s}
.admin-page .button.primary{background:#26354b;box-shadow:0 3px 8px rgba(24,35,58,.085)}
.admin-page .button.primary:hover:not(:disabled){background:#354862;box-shadow:0 4px 12px rgba(24,35,58,.13)}
.admin-page .button.secondary:not(.danger-lite):hover:not(:disabled){background:#e7e8eb}
.admin-page .button:focus-visible{outline:2px solid #a56d62;outline-offset:3px}
.admin-page input[type=text]:not([readonly]),.admin-page input[type=email]:not([readonly]),.admin-page input[type=password]:not([readonly]),.admin-page input[type=url]:not([readonly]),.admin-page textarea:not([readonly]),.admin-page input[type=search]{transition:border-color .15s,box-shadow .15s}
.admin-page input[type=text]:focus-visible,.admin-page input[type=email]:focus-visible,.admin-page input[type=password]:focus-visible,.admin-page input[type=url]:focus-visible,.admin-page textarea:focus-visible,.admin-page input[type=search]:focus-visible{border-color:#b17c69;outline:0;box-shadow:0 0 0 3px rgba(177,124,105,.16)}
.admin-page .stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.admin-page .stat{position:relative;overflow:hidden;text-align:left;padding:16px 20px 17px;border-radius:14px;border:1px solid #e9e3dd;box-shadow:0 3px 12px rgba(24,35,58,.032)}
.admin-page .stat::before{content:'';position:absolute;inset:0 auto 0 0;width:4px;background:#a8b5be}
.admin-page .stat:nth-child(2)::before{background:#e0b68c}
.admin-page .stat:nth-child(3)::before{background:#91b9a1}
.admin-page .stat strong{font-size:28px;line-height:1.3}
.admin-page .stat span{display:block;font-size:13px;font-weight:650;letter-spacing:.01em;margin-top:4px}
.admin-page table thead{background:#f7f5f2}
.admin-page table th{font-size:12px;color:#596474;white-space:nowrap}
.admin-page table tbody tr{transition:background .14s}
.admin-page table tbody tr:hover{background:#fcfaf7}
.admin-page table td a{font-weight:650;text-underline-offset:3px}
.admin-page .customer-directory-row{border-radius:9px}
.admin-page .status{padding:5px 11px}
.admin-page .basic-settings-card{border-top:3px solid #c8a092}
.admin-page .basic-settings-card>h2:first-child{border-left:0;padding-left:0}
.admin-page .settings-mail-guide{display:flex;align-items:flex-start;gap:13px;padding:16px 18px;margin:-1px 0 23px;border:1px solid #e9dfd8;border-radius:12px;background:linear-gradient(105deg,#fffaf7,#f9f6f2);font-size:13px;line-height:1.75}
.admin-page .settings-mail-guide-icon{flex:0 0 36px;display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:#f1e5de;color:#91604e;font-size:19px}
.admin-page .settings-mail-guide strong{display:block;font-size:14px;color:#333f4e;margin:0 0 5px}
.admin-page .settings-mail-guide p{margin:0;color:#626772;font-weight:400;overflow-wrap:anywhere}
@media(max-width:760px){
  .admin-page .topbar nav a,.admin-page .topbar nav .linkbtn{background:#f5f3f1;border:1px solid #ece8e4}
  .admin-page .page-title{padding-left:13px}
  .admin-page .page-title::before{width:3px;height:33px;top:6px}
  .admin-page .stats{gap:9px}
  .admin-page .stat{padding:13px 12px 14px}
  .admin-page .stat strong{font-size:25px}
  .admin-page .stat span{font-size:12px}
  .admin-page .settings-mail-guide{padding:13px 12px;gap:10px;margin-bottom:21px}
  .admin-page .settings-mail-guide-icon{flex-basis:30px;width:30px;height:30px;font-size:16px;border-radius:9px}
  .admin-page .settings-mail-guide strong{font-size:13px}
}
@media(max-width:350px){.admin-page .stats{gap:6px}.admin-page .stat{padding:11px 9px}.admin-page .stat strong{font-size:23px}}
@media(prefers-reduced-motion:reduce){.admin-page .button,.admin-page .topbar nav a,.admin-page .topbar nav .linkbtn,.admin-page input,.admin-page textarea{transition:none}}


/* dev57: independent new-customer registration, consistent with the existing directory */
.admin-page .customer-directory-heading{align-items:center}
.admin-page .customer-directory-heading .button{flex:0 0 auto;white-space:normal}
.admin-page .customer-new-card{max-width:860px;border-top:3px solid #c8a092}
.admin-page .customer-new-actions{display:flex;gap:12px;flex-wrap:wrap;margin:10px 0 20px}
.admin-page .customer-no-projects{display:grid;justify-items:start;gap:8px;padding:20px 6px 26px}
.admin-page .customer-no-projects p{color:var(--muted);margin:0 0 2px}
@media(max-width:650px){
 .admin-page .customer-directory-heading{align-items:stretch;flex-direction:column}
 .admin-page .customer-directory-heading .button{width:100%}
 .admin-page .customer-new-actions{flex-direction:column}
 .admin-page .customer-new-actions .button{width:100%}
}

/* dev59: make send now visible on the proof's follow-up card before scheduling. */
.followup-action-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:4px 0 12px}
.followup-action-row .button{min-width:170px;white-space:normal;text-align:center}
.followup-action-note{margin:4px 0 0;line-height:1.65}
@media(max-width:650px){.followup-action-row{display:grid;grid-template-columns:1fr;gap:10px}.followup-action-row .button{width:100%}}

/* dev62 recoverable customer deletion: unobtrusive until intentionally expanded */
.customer-trash-link{margin:0 0 12px;text-align:right;font-size:13px}
.customer-delete-zone{margin-top:22px;border-color:#f0cfcb;background:#fffafa}
.customer-delete-zone>summary{cursor:pointer;color:#9b4b42;font-weight:700}
.customer-delete-zone[open]>summary{margin-bottom:15px}
.customer-delete-zone form{display:grid;justify-items:start;gap:13px}
.customer-delete-zone .danger-check{padding:12px;max-width:100%}
.customer-trash-row{gap:14px;flex-wrap:wrap}
@media(max-width:650px){.customer-trash-row form{width:100%}.customer-trash-row .button{width:100%}.customer-delete-zone form .button{width:100%}}

/* dev63: reversible archive vs irreversible purge, separated visually. */
.customer-trash-row{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap}
.customer-trash-row>span{flex:1 1 220px;min-width:0}
.customer-trash-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.customer-trash-actions>form{margin:0}
.customer-permanent{border:0;background:transparent;padding:0;min-width:0;max-width:none}
.customer-permanent>summary{list-style:none;user-select:none;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;margin:0}
.customer-permanent>summary.button{min-height:44px}
.customer-permanent>summary::-webkit-details-marker{display:none}
.customer-permanent[open]{max-width:min(520px,100%);min-width:min(320px,100%);border:1px solid #edcecc;border-radius:10px;background:#fff9f8}
.customer-permanent[open]>summary{border-radius:9px 9px 0 0}
.customer-permanent-body{width:min(470px,calc(100vw - 54px));padding:14px;border-top:1px solid #edcecc}
.customer-permanent-body p{margin:0 0 12px;line-height:1.65}
.customer-permanent-body form>label{display:block;margin-top:12px}
.customer-permanent-body .check{display:flex}
.customer-permanent-body form>.button{width:100%;white-space:normal}
@media(max-width:760px){.customer-trash-actions{width:100%;justify-content:flex-start;align-items:stretch}.customer-permanent{max-width:100%}.customer-permanent>summary.button{width:100%}.customer-permanent[open]{min-width:100%}.customer-permanent-body{width:min(470px,calc(100vw - 56px))}}

/* dev66: identify separate records sharing an email, without bulk-deleting them. */
.customer-duplicate-note{margin:10px 0 0;border:1px solid #e8d3ad;background:#fff9ee;border-radius:9px;padding:8px 11px;font-size:13px}
.customer-duplicate-note>summary{cursor:pointer;color:#80521d;font-weight:700;line-height:1.6}
.customer-duplicate-note>div{padding-top:6px}
.customer-duplicate-note p{margin:3px 0 9px;line-height:1.7;color:#79531e}
.customer-duplicate-note ul{margin:0;padding-left:20px;word-break:break-word}
.customer-duplicate-note li{margin:6px 0}
.customer-duplicate-note a{color:#244d7a;text-underline-offset:3px}
tr[id^="deleted-case-"]:target{background:#fff5dc}
.customer-trash-row:target{background:#fffaf0;border-radius:8px}

/* dev67: simple LINE onboarding, no third-party JS embedded in the admin screen. */
.line-badge{display:inline-block;font-size:12px;font-weight:800;padding:5px 11px;border-radius:999px}
.line-badge.line-ok{background:#e1f5e6;color:#13623b}
.line-badge.line-off{background:#f1f2f4;color:#606975}
.line-status-card h2,.line-step h2,.line-customer-card h2,.line-manual-card h2{margin-top:0}
.line-step{margin-bottom:16px}.line-action-row{display:flex;gap:10px;flex-wrap:wrap}
.line-copy-row{display:flex;align-items:flex-end;gap:10px}
.line-copy-row input{flex:1;min-width:0;overflow-wrap:anywhere}
.line-copy-row .button{white-space:nowrap}
.line-success-note{background:#eef9f1;color:#196540;border-radius:9px;padding:10px 14px;font-weight:700}
.line-inline-form{margin:15px 0}.line-invite-box{background:#f5faf5;border:1px solid #c6e4cf;border-radius:10px;padding:16px;margin-top:16px}
.line-invite-box textarea{width:100%;min-height:130px;background:#fff;font:inherit;overflow-wrap:anywhere}
.line-invite-box .button{margin-top:10px}.line-unlink{margin-top:22px;font-size:14px}
.line-unlink summary{cursor:pointer}.line-manual-card .check{margin-top:16px}
@media(max-width:650px){.line-copy-row{flex-direction:column;align-items:stretch}.line-copy-row .button,.line-manual-card .button{width:100%}.line-action-row .button{width:100%}}

/* dev68: shared receiver URL wraps on narrow screens; read only, no misleading copy action. */
.line-webhook-reference{background:#f5f7fa;border:1px solid #dce3ed;border-radius:9px;padding:12px 14px;line-height:1.6;margin:10px 0}.line-webhook-reference code{overflow-wrap:anywhere;word-break:break-all;font-family:ui-monospace,Consolas,monospace;font-size:12px;color:#24354d}

/* dev85: first-use guidance, kept separate from existing operational UI. */
.onboarding-shell{max-width:790px;margin:34px auto 24px}
.onboarding-card{max-width:870px;margin:26px auto;padding:28px}
.onboarding-card h1{font-size:clamp(24px,3.5vw,32px);line-height:1.5;margin:10px 0 16px}
.onboarding-eyebrow{display:inline-block;padding:5px 11px;border-radius:99px;background:#f5e9e6;color:#7b4e49;font-weight:800;font-size:12px}
.onboarding-steps{padding:0;margin:22px 0;list-style:none;counter-reset:steps;display:grid;gap:13px}
.onboarding-steps li{position:relative;padding:14px 14px 14px 57px;border:1px solid #e8e7e5;border-radius:12px;background:#fbfaf8;counter-increment:steps}
.onboarding-steps li:before{content:counter(steps);position:absolute;left:14px;top:16px;display:grid;place-items:center;width:29px;height:29px;border-radius:50%;background:#18233a;color:#fff;font-weight:800;font-size:13px}
.onboarding-steps li strong,.onboarding-steps li span{display:block}
.onboarding-steps li span{font-size:13px;color:#606876;margin-top:2px}
.onboarding-actions{display:flex;gap:12px;flex-wrap:wrap;margin:22px 0}
.onboarding-finished{text-align:center}
.onboarding-finished .onboarding-actions{justify-content:center}
#basic-settings{scroll-margin-top:95px}
@media(max-width:760px){.onboarding-card{padding:20px}.onboarding-actions{display:grid;grid-template-columns:1fr}.onboarding-actions .button{width:100%}#basic-settings{scroll-margin-top:125px}}

/* dev86: first-use legal confirmation and safe postal lookup / password reveal. */
.password-control{position:relative;margin:7px 0 20px}
.password-control input{margin:0;padding-right:56px}
.password-visibility{position:absolute;top:50%;right:3px;transform:translateY(-50%);display:grid;place-items:center;width:46px;height:44px;border:0;background:transparent;border-radius:8px;cursor:pointer;color:#536377}
.password-visibility.is-visible{color:#a34f3f;background:#f9f1ed}
.password-visibility.is-visible svg{opacity:.65}
.password-visibility:focus-visible{outline:3px solid #426db3;outline-offset:2px}
.postal-lookup-button{margin:10px 0 4px;width:100%;font-size:13px;white-space:normal}
.postal-result{display:flex;flex-direction:column;align-items:stretch;gap:7px;font-size:13px;font-weight:400;color:#425770;margin-top:7px}
.postal-result:empty{display:none}.postal-candidate{display:block;text-align:left;white-space:normal;line-height:1.5}
.onboarding-legal-badge{display:inline-block;font-size:12px;border-radius:99px;padding:2px 9px;white-space:nowrap;vertical-align:middle}
.onboarding-legal-badge.is-pending{color:#9b5b20;background:#fff1de}
.onboarding-legal-badge.is-confirmed{color:#206043;background:#e8f4ed}
#legal{scroll-margin-top:115px}

/* dev88: one-tap, original administrator-only operations entry. */
.topbar-inner nav>a.operations-nav-button{background:#f5e6de;border:1px solid #b86e4f;color:#743a26;border-radius:9px;padding:7px 11px;font-weight:800;white-space:nowrap}
.topbar-inner nav>a.operations-nav-button:hover,.topbar-inner nav>a.operations-nav-button:focus-visible{background:#e9c6b4;outline-offset:3px}
.management-head{display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap}
.management-head>.button{flex:0 0 auto}
.management-stats{grid-template-columns:repeat(2,minmax(130px,220px));}
.management-card h2{margin:0 0 10px}
.management-card .section-head{align-items:center;margin-bottom:6px}
.management-table th,.management-table td{vertical-align:middle}
.management-table strong{color:var(--navy)}
.management-table small{color:var(--muted)}
.management-email{overflow-wrap:anywhere}
.management-pagination{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:22px}
.management-safety-note{border-top:1px solid var(--line);margin:20px 0 0;padding-top:14px}
@media(max-width:760px){
  .topbar-inner nav>a.operations-nav-button{background:#f5e6de;color:#743a26;border:1px solid #b86e4f;font-weight:800;padding:8px 12px}
  .management-head{align-items:stretch}
  .management-head>.button{width:100%}
  .management-card .section-head{align-items:flex-start;flex-wrap:wrap}
  .management-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* dev89: simple, visibly destructive three-step account removal. */
.management-table td:last-child{white-space:nowrap}
.button.management-delete{background:#fff3ef;color:#9c3529;border:1px solid #e8a6a0;padding:7px 12px}
.button.management-delete:hover,.button.management-delete:focus-visible{background:#ffe5de;outline:3px solid #cc776e;outline-offset:2px}
.management-confirm{max-width:760px;margin:12px auto 50px;border:2px solid #e4b5a9}
.management-confirm h2{color:#953c2a;margin-bottom:16px}
.management-confirm>.summary{max-width:580px;padding:14px;border-radius:10px;background:#faf8f7}
.management-deletion-note{padding:15px;background:#fff2e9;border-left:4px solid #bd6153;border-radius:8px}
.management-confirm-actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin-top:25px}
.management-confirm-actions form{margin:0}
.button.management-delete-final{background:#a53930;color:white;border:2px solid #7d2e28;min-width:150px}
.button.management-delete-final:hover,.button.management-delete-final:focus-visible{background:#802920;outline:3px solid #d19d91;outline-offset:3px}
@media(max-width:600px){.management-confirm-actions,.management-confirm-actions form,.management-confirm-actions .button{width:100%}}

/* dev91: one clear action on the public invitation page; no automatic LINE send. */
.line-receive-page{max-width:620px;margin:34px auto 44px;text-align:center;padding:32px 26px}
.line-receive-page h1{font-size:clamp(23px,5vw,30px);margin:4px 0 16px}
.line-receive-label{display:inline-block;background:#ecf7f1;color:#17603f;border-radius:100px;padding:4px 15px;font-weight:800;font-size:13px;margin:0}
.line-receive-lead{text-align:left;line-height:1.85;margin:16px auto;max-width:510px;overflow-wrap:anywhere}
.line-receive-to{text-align:left;background:#f6f7f5;border-radius:9px;padding:10px 14px;margin:14px 0 22px;overflow-wrap:anywhere}
.line-register-button{display:flex;width:100%;min-height:64px;border-radius:12px;background:#117a49;color:#fff;font-size:19px;box-shadow:0 4px 12px rgba(17,122,73,.15)}
.line-register-button:hover,.line-register-button:focus-visible{background:#095d37;color:#fff}
.line-receive-steps{text-align:left;margin:24px 0 16px;padding:6px 16px;background:#f6f9f7;border-radius:11px}
.line-receive-steps p{margin:11px 0;line-height:1.75}
.line-receive-page .subtext{text-align:left;overflow-wrap:anywhere}
@media(max-width:760px){.line-receive-page{margin:20px auto 30px;padding:24px 17px}.line-register-button{min-height:64px}}

/* dev92: logged-in business identity, always scoped to authenticated admin pages */
.admin-page .login-identity{display:flex;align-items:center;flex-wrap:wrap;gap:0;width:max-content;max-width:100%;min-height:37px;margin:0;padding:6px 13px;border:1px solid #e8e0d9;border-left:4px solid #c9917c;border-radius:5px;background:#fffaf7;color:#26354c;font-size:14px;line-height:1.55;overflow-wrap:anywhere}
.admin-page .login-identity-label{font-size:13px;color:#656b75;white-space:nowrap}
.admin-page .login-identity-name{font-size:14px;font-weight:750;color:#26354c;overflow-wrap:anywhere}
.admin-page .login-identity-suffix{white-space:nowrap}
.admin-page .login-identity-unset{font-size:13px;font-weight:600;color:#9d5425}
.admin-page .login-identity + .page-title{margin-top:8px}
@media(max-width:760px){.admin-page .login-identity{width:100%;padding:8px 11px;font-size:13px;min-height:42px}.admin-page .login-identity + .page-title{margin-top:10px}}

/* dev93: small breathing space above identity on every authenticated screen */
.admin-page .login-identity{margin-top:14px}
/* On the list only, the logged-in company, heading, summary and actions stay
   together below the sticky navigation. Other screens remain scrollable. */
.admin-page .list-sticky-head{
  position:sticky;
  top:var(--koryo-topbar-h,64px);
  z-index:9;
  margin:0 auto 16px;
  padding:12px 10px 11px;
  background:rgba(255,254,252,.985);
  border:1px solid #eee7e1;
  border-top:0;
  border-radius:0 0 13px 13px;
  box-shadow:0 5px 15px rgba(24,35,58,.06);
}
.admin-page .list-sticky-head .login-identity{margin-top:3px}
.admin-page .list-sticky-head .page-title{margin:9px 0 0}
.admin-page .list-sticky-head .page-title p{font-size:13px}
@media(max-width:760px){
 .admin-page .login-identity{margin-top:12px}
 .admin-page .list-sticky-head{margin:0 auto 13px;padding:9px 8px 10px}
 .admin-page .list-sticky-head .login-identity{margin-top:3px}
 .admin-page .list-sticky-head .page-title{margin:7px 0 0;gap:8px}
 .admin-page .list-sticky-head .page-title h1{font-size:22px}
 .admin-page .list-sticky-head .page-title p{font-size:12px;line-height:1.5}
 .admin-page .list-sticky-head .page-actions{display:flex;gap:8px;flex-wrap:wrap}
 .admin-page .list-sticky-head .page-actions .button{padding:8px 11px;min-height:39px;font-size:12px}
}

/* dev94: the list header is deliberately a BODY-level sibling to main.
   Previously it was nested inside main; with a short list its sticky area
   ended before the viewport scroll ended, so it scrolled away. The header
   remains in the root scrolling context; never force position:fixed on an
   authenticated screen because that can overlap the nav on mobile. */
.admin-page .list-sticky-head{background:#fffefa;isolation:isolate}
.admin-page .list-page-flashes{margin-top:8px;margin-bottom:0}

/* dev95: fixed summary on ALL authenticated application screens. Root-level
   sibling of <main> preserves sticky during long form scrolling; public
   customer/registration screens never receive the shared shell. */
.admin-page .shared-sticky-head {
 position:sticky; top:var(--koryo-topbar-h,64px); z-index:9;
 margin:0 auto 16px; padding:12px 10px 11px;
 background:#fffefa; border:1px solid #eee7e1; border-top:0;
 border-radius:0 0 13px 13px; box-shadow:0 5px 15px rgba(24,35,58,.06);
 isolation:isolate;
}
.admin-page .shared-sticky-head .login-identity{margin-top:3px}
.admin-page .shared-sticky-head .page-title{margin:9px 0 0}
.admin-page .shared-sticky-head .page-title p{font-size:13px;line-height:1.5}
/* Ensure hash-targeted settings sections are not obscured by the sticky area.
   UI scrolls to the anchor with the actual group height, not a guessed px. */
.admin-page main.wrap [id],.admin-page #legal,.admin-page #basic-settings{scroll-margin-top:var(--koryo-sticky-offset,245px)}
@media(max-width:760px){
 .admin-page .shared-sticky-head {margin:0 auto 13px;padding:9px 8px 10px}
 .admin-page .shared-sticky-head .login-identity{margin-top:3px}
 .admin-page .shared-sticky-head .page-title{margin:7px 0 0;gap:8px}
 .admin-page .shared-sticky-head .page-title h1{font-size:22px}
 .admin-page .shared-sticky-head .page-title p{font-size:12px}
 .admin-page .shared-sticky-head .page-title.split{display:flex;flex-wrap:wrap}
 .admin-page .shared-sticky-head .page-title .button{min-height:39px;padding:8px 11px;font-size:12px}
}


/* dev104-passkey-onetap: MFA enrollment/challenge */
.mfa-card{max-width:680px;margin:24px auto}.mfa-card h1{margin-bottom:10px}.mfa-steps{padding-left:1.4rem;line-height:1.7}.mfa-qr{display:flex;justify-content:center;align-items:center;min-height:250px;margin:18px 0;padding:12px;background:#fff;border:1px solid #e3e3e3;border-radius:14px}.mfa-manual{margin:12px 0 18px}.mfa-manual code{display:block;word-break:break-all;padding:12px;background:#f7f7f7;border-radius:10px}.recovery-codes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:18px 0}.recovery-codes code{display:block;padding:10px 12px;background:#f7f7f7;border:1px solid #e6e6e6;border-radius:8px;text-align:center;letter-spacing:.04em}@media(max-width:640px){.recovery-codes{grid-template-columns:1fr}.mfa-qr canvas{max-width:100%;height:auto!important}}
/* dev104-passkey-onetap: authentication priority */
.auth-priority .auth-method{display:grid;grid-template-columns:44px 1fr;gap:14px;padding:16px 0;border-top:1px solid var(--line)}
.auth-priority .auth-method:first-of-type{border-top:0}
.auth-priority .auth-number{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#eef0f3;color:var(--navy);font-weight:900}
.auth-priority .primary-method{background:#f8fafc;border-radius:12px;padding:16px;margin:10px 0}
.auth-priority .primary-method .auth-number{background:var(--navy);color:#fff}
.auth-priority .auth-method h2{margin:0 0 4px;font-size:18px}.auth-priority .auth-method p{margin:0 0 10px}.auth-priority hr{border:0;border-top:1px solid var(--line);margin:22px 0}
@media(max-width:600px){.auth-priority .auth-method{grid-template-columns:38px 1fr;gap:10px}.auth-priority .button{width:100%}}

/* dev104-passkey-onetap: passwordless tenant sign-in */
.passkey-onetap-login .passkey-onetap-main{padding:14px 0 18px;text-align:center}
.passkey-onetap-login .passkey-onetap-main .button{width:100%;font-size:1.05rem;padding:14px 18px}
.passkey-onetap-login .login-fallback{margin-top:14px;border-top:1px solid #eadfd9;padding-top:14px}
.passkey-onetap-login .login-fallback summary{cursor:pointer;font-weight:700;color:#5a4a44}
.passkey-onetap-login .login-fallback form{margin-top:14px}

/* dev106 Stripe subscription / registration */
.registration-card,.subscription-card{border-top:4px solid var(--accent)}
.registration-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0 24px}
.registration-steps span{padding:9px 8px;border-radius:999px;background:#f0f1f3;color:var(--muted);font-size:12px;font-weight:800;text-align:center}
.registration-steps .current{background:var(--accent-soft);color:var(--accent)}
.subscription-shell{width:min(620px,100%);margin:42px auto}
.subscription-card h1{font-size:34px;margin-bottom:4px}
.subscription-price-note{color:var(--muted);margin-top:0}
.subscription-cta{width:100%;font-size:16px;padding:14px 18px}
.stripe-management-card{border-top:4px solid var(--accent)}
.stripe-management-card form{margin-top:18px}
.stripe-management-actions{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
.stripe-management-actions form{margin-top:0}
@media(max-width:700px){.registration-steps{grid-template-columns:1fr}.stripe-management-actions{grid-template-columns:1fr}.subscription-shell{margin:24px auto}}


/* dev118: customer proof watermark. Display-layer only; original files are never modified. */
.proof-watermark-media{position:relative;display:inline-block;max-width:100%;line-height:0;overflow:hidden;border-radius:8px}
.proof-watermark-media>.preview-image{border-radius:8px}
.proof-watermark-layer{position:absolute;inset:0;z-index:4;pointer-events:none;user-select:none;background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27320%27%20height%3D%27144%27%20viewBox%3D%270%200%20320%20144%27%3E%3Cg%20transform%3D%27rotate%28-28%20160%2072%29%27%3E%3Ctext%20x%3D%27154%27%20y%3D%2781%27%20text-anchor%3D%27middle%27%20font-family%3D%27Arial%20Rounded%20MT%20Bold%2CHiragino%20Maru%20Gothic%20ProN%2CYu%20Gothic%2CMeiryo%2Csans-serif%27%20font-size%3D%2768%27%20font-weight%3D%27900%27%20letter-spacing%3D%270.9%27%20fill%3D%27%2399A5B3%27%20fill-opacity%3D%270.42%27%3EKOURYO%20DIM%3C%2Ftext%3E%3Ctext%20x%3D%27160%27%20y%3D%2781%27%20text-anchor%3D%27middle%27%20font-family%3D%27Arial%20Rounded%20MT%20Bold%2CHiragino%20Maru%20Gothic%20ProN%2CYu%20Gothic%2CMeiryo%2Csans-serif%27%20font-size%3D%2768%27%20font-weight%3D%27900%27%20letter-spacing%3D%270.9%27%20fill%3D%27%23CED8E3%27%20fill-opacity%3D%270.58%27%20stroke%3D%27%23A8B1BC%27%20stroke-opacity%3D%270.98%27%20stroke-width%3D%271.15%27%20paint-order%3D%27stroke%20fill%27%3EKOURYO%20DIM%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E");background-repeat:repeat;background-size:320px 144px;background-position:center;opacity:.225}
.preview-pdf-stage{position:relative;width:100%;height:72vh;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#fff}
.preview-pdf-stage>.preview-pdf{display:block;width:100%;height:100%;border:0;border-radius:0}
.preview-modal-media{position:relative;display:inline-block;width:max-content;max-width:none;line-height:0}
.preview-modal-media>.preview-modal-image{display:block}
.preview-modal-watermark{display:none}
.preview-modal.has-proof-watermark .preview-modal-watermark{display:block}
@media(max-width:760px){.preview-pdf-stage{height:60vh}.proof-watermark-layer{background-size:250px 113px}}


/* dev133: optional 48-hour PDF delivery after customer approval */
.pdf-delivery-option{margin:18px 0 16px;padding:14px 16px;border:1px solid #e5e7eb;border-radius:12px;background:#fff}
.pdf-delivery-warning{margin:8px 0 0;color:#b42318;font-size:.88rem;font-weight:700;line-height:1.55}
.pdf-delivery-card{max-width:960px;margin:28px auto}
.pdf-delivery-expiry{font-weight:700;color:#b42318}
.pdf-delivery-item{margin-top:24px;padding-top:24px;border-top:1px solid #e5e7eb}
.pdf-delivery-preview{width:100%;height:min(68vh,760px);min-height:420px;border:1px solid #d0d5dd;border-radius:12px;overflow:hidden;background:#f8fafc}
.pdf-delivery-preview iframe{display:block;width:100%;height:100%;border:0;background:#fff}
.pdf-delivery-download{min-width:220px;text-align:center}
@media(max-width:720px){.pdf-delivery-preview{height:58vh;min-height:360px}.pdf-delivery-download{width:100%;min-width:0}}

/* dev139: PDF review canvas viewer. Stored/original PDF remains untouched. */
.preview-pdf-canvas-stage{width:100%;max-height:72vh;overflow:auto;border:1px solid var(--line);border-radius:8px;background:#eef0f3;padding:12px;overscroll-behavior:contain;-webkit-user-select:none;user-select:none}
.pdf-canvas-status{position:sticky;top:0;z-index:6;margin:0 0 10px;padding:8px 10px;border-radius:7px;background:rgba(255,255,255,.94);color:var(--muted);font-size:12px;line-height:1.5;text-align:left;box-shadow:0 1px 4px rgba(24,35,58,.08)}
.pdf-canvas-status.ready{position:static;background:transparent;box-shadow:none;padding:0 2px 4px}
.pdf-canvas-status.error{background:#fde9e8;color:#8b332d}
.pdf-canvas-pages{display:grid;gap:14px;justify-items:center;align-items:start}
.pdf-canvas-page{position:relative;display:inline-block;max-width:100%;line-height:0;background:#fff;box-shadow:0 2px 8px rgba(24,35,58,.12);overflow:hidden}
.pdf-review-canvas{display:block;max-width:100%;height:auto;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.pdf-canvas-page>.proof-watermark-layer{display:block}
@media(max-width:760px){.preview-pdf-canvas-stage{max-height:60vh;padding:8px}.pdf-canvas-pages{gap:10px}}

/* dev140: explicit PDF delivery ON/OFF control; default OFF */
.pdf-delivery-row{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:10px}
.pdf-delivery-title{display:flex;flex-direction:column;min-width:0;color:#b42318;font-weight:800;line-height:1.45}
.pdf-delivery-title strong{color:#b42318;font-weight:800}
.pdf-delivery-toggle{flex:0 0 auto;min-width:72px;min-height:42px;border:1px solid #cfd4dc;border-radius:999px;background:#eef0f3;color:#606775;font:inherit;font-weight:900;cursor:pointer;padding:8px 16px}
.pdf-delivery-toggle.is-on{border-color:#b42318;background:#b42318;color:#fff}
.pdf-delivery-toggle:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:520px){.pdf-delivery-toggle{min-width:68px}}

/* dev141: place PDF delivery ON/OFF button below the red two-line label */

/* dev151 public DIM Account login */
.central-login-primary{width:min(520px,100%);margin:50px auto 20px}.central-login-primary h1{color:var(--navy);margin:0 0 12px}.central-login-primary p{margin:6px 0}.central-login-button{width:100%;margin-top:12px;font-size:1.02rem;padding:14px 18px}.local-login-card{margin-top:20px}.local-login-card>h2{font-size:18px;margin-bottom:6px}

/* dev152 login terminology cleanup */
.login-method-divider{width:min(520px,100%);margin:18px auto;display:flex;align-items:center;gap:12px;color:var(--muted);font-size:13px;font-weight:700}
.login-method-divider::before,.login-method-divider::after{content:"";height:1px;background:var(--line);flex:1}
.login-method-divider span{white-space:nowrap}
.local-login-card{margin-top:0}


/* dev153: collapse alternate local login methods under one disclosure */
.alternate-login{width:min(520px,100%);margin:18px auto 0}
.alternate-login>summary{list-style:none;cursor:pointer;text-align:center;color:var(--muted);font-size:14px;font-weight:800;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;user-select:none}
.alternate-login>summary::-webkit-details-marker{display:none}
.alternate-login>summary::after{content:"＋";display:inline-block;margin-left:8px;font-weight:900}
.alternate-login[open]>summary::after{content:"−"}
.alternate-login>.local-login-card{margin-top:10px}
