:root{--green:#315f54;--dark:#20342e;--ink:#27332f;--muted:#77837e;--line:#dde3df}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:#f4f5f2;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif}button,input,select,textarea{font:inherit}button,a{cursor:pointer}.topbar,.public-header{height:64px;display:flex;align-items:center;padding:0 30px;background:#fff;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;color:var(--dark);font-weight:800;text-decoration:none}.logo-mark{display:grid;place-items:center;width:28px;height:28px;border-radius:7px;background:var(--green);color:#fff}.topbar nav{display:flex;gap:24px;margin-left:50px}.topbar nav a{color:var(--muted);text-decoration:none;font-size:12px;font-weight:700}.topbar nav a.active{color:var(--green)}.account{margin-left:auto;display:flex;align-items:center;gap:9px;font-size:12px}.account a{margin-left:10px;color:var(--muted)}.avatar{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#e6efea;color:var(--green)}.public-header .login-link{margin-left:auto;color:var(--green);font-weight:700}.public-main>.hero{max-width:1100px;margin:35px auto 20px;padding:0 24px}.hero h1,.admin-heading h1{font-family:Georgia,"Yu Mincho",serif;letter-spacing:.05em}.hero p{color:var(--muted)}.eyebrow{margin:0 0 5px;color:var(--green);font-size:9px;font-weight:800;letter-spacing:.18em}.workspace{display:grid;grid-template-columns:minmax(560px,1fr) minmax(500px,.9fr);min-height:calc(100vh - 64px)}.editor{padding:36px clamp(28px,5vw,70px);background:#fff}.preview-pane{padding:34px clamp(20px,3vw,45px);background:#eef0ec}.editor-heading,.preview-top,.saved-heading,.panel-title{display:flex;align-items:center;justify-content:space-between}.editor-heading h1{margin:0;font:700 27px Georgia,"Yu Mincho",serif}.guide{padding:12px 14px;border-left:3px solid var(--green);background:#eef5f1;color:#65736e;font-size:11px}.guide b{margin-right:12px;color:var(--green)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px 18px}.full{grid-column:1/-1}.field>span,.section-title>span{display:block;margin-bottom:7px;font-size:12px;font-weight:700}.field b,.section-title b{display:inline-grid;place-items:center;width:21px;height:21px;margin-right:5px;border-radius:50%;background:var(--green);color:#fff;font-size:10px}.field input,.field select,.field textarea{width:100%;padding:11px;border:1px solid #d7ddd9;border-radius:7px;background:#fff}.field textarea{min-height:80px}.required,.optional{margin-left:5px;padding:2px 5px;border-radius:3px;font-size:8px;font-style:normal}.required{background:#b74b43;color:#fff}.optional{background:#e8edea;color:#74807b}.recipient-input{display:grid;grid-template-columns:1fr 86px;gap:8px}.section-title{margin:24px 0 9px}.items-table{overflow:hidden;border:1px solid var(--line);border-radius:8px}.item-head,.item-row{display:grid;grid-template-columns:minmax(100px,2fr) 55px minmax(80px,1fr) 70px 80px 25px;align-items:center;gap:6px;padding:8px 10px}.item-head{background:#f4f6f4;color:var(--muted);font-size:9px}.item-row{border-top:1px solid #e8ece9}.item-row input,.item-row select{width:100%;min-width:0;padding:8px;border:1px solid #dbe0dc;border-radius:5px}.item-row strong{text-align:right;font-size:11px}.remove,.add-item{border:0;background:none;color:var(--green)}.add-item{padding:10px 0;font-size:11px;font-weight:700}.tax-panel,.details-panel{margin-top:14px;padding:13px;border:1px solid #e3e7e4;border-radius:8px;background:#f7f8f6}.compact{margin:0 0 9px}.segmented,.payment-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px}.segmented button,.payment-switch button{padding:10px;border:1px solid #d8dfdb;border-radius:7px;background:#fff;color:#69756f;font-size:11px;font-weight:700}.segmented button.selected,.payment-switch button.selected{border-color:var(--green);background:#edf5f1;color:var(--green)}.note{display:block;margin-top:18px}.actions{display:flex;justify-content:flex-end;gap:9px;margin-top:24px}.primary,.secondary{padding:10px 18px;border-radius:7px;font-weight:700}.primary{border:1px solid var(--dark);background:var(--dark);color:#fff}.secondary{border:1px solid #cfd6d2;background:#fff;color:#52655f}.preview-top{margin-bottom:15px;font-weight:800}.paper{position:relative;min-height:720px;padding:7% 8%;background:#fff;box-shadow:0 9px 28px #1f302a1a;font:10px "Yu Mincho",serif}.paper-top{text-align:center;border-bottom:2px solid #263b36}.paper-top h2{letter-spacing:.4em}.paper-meta{display:grid;grid-template-columns:1fr 1fr;gap:35px;margin:30px 0}.paper-meta h3{border-bottom:1px solid #455751;padding-bottom:7px}.paper-meta p{line-height:1.6}.amount-box{display:flex;align-items:center;padding:13px 18px;border-left:3px solid var(--green);background:#eef2ef}.amount-box strong{margin-left:auto;font-size:20px}.paper table{width:100%;margin-top:25px;border-collapse:collapse}.paper th{padding:8px;background:var(--green);color:#fff}.paper td{padding:8px;border-bottom:1px solid #d8dedb}.paper th:not(:first-child),.paper td:not(:first-child){text-align:right}.totals{width:55%;margin:15px 0 0 auto}.totals p{display:flex;justify-content:space-between;margin:0;padding:5px 8px;border-bottom:1px solid #d8dedb}.totals .grand{background:#edf2ef;font-size:13px}.paper-bottom{position:absolute;right:8%;bottom:6%;left:8%;display:grid;grid-template-columns:1fr 1fr;gap:30px}.paper-bottom>div{border-top:1px solid #65736e}.paper-bottom p{white-space:pre-line}.saved-overlay{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:20px;background:#14231f73}.saved-panel{display:flex;flex-direction:column;width:min(750px,100%);height:78vh;padding:25px;border-radius:14px;background:#fff}.saved-heading{border-bottom:1px solid var(--line)}.saved-heading button{width:31px;height:31px;border:0;border-radius:50%}.saved-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:18px 0;padding:4px;border-radius:9px;background:#f0f3f1}.saved-tabs button{padding:10px;border:0;border-radius:7px;background:transparent;color:var(--muted);font-weight:700}.saved-tabs button.active{background:#fff;color:var(--green);box-shadow:0 2px 8px #20342e17}.saved-list{overflow:auto}.saved-list article{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:15px 5px;border-bottom:1px solid #e8ece9}.saved-info{display:flex;flex-direction:column;gap:4px}.saved-info span{color:var(--muted);font-size:11px}.saved-actions{display:flex;flex-wrap:nowrap;gap:5px;overflow-x:auto}.saved-actions button{flex:none;padding:7px 9px;border:1px solid #d5dcd8;border-radius:6px;background:#fff;color:#49605a;font-size:10px;font-weight:700}.saved-actions .receipt-action{border-color:#d88952;background:#fff0e5;color:#a44718}.saved-actions .danger{border-color:#e5cac7;color:#a04b45}.login-shell{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(430px,100%);padding:42px;border-radius:14px;background:#fff;box-shadow:0 20px 60px #20342e18}.login-brand{display:flex;align-items:center;gap:10px;margin-bottom:30px}.login-card h1{font-family:Georgia,"Yu Mincho",serif}.login-description{color:var(--muted);font-size:12px}.login-card form{display:grid;gap:16px}.login-card label{display:grid;gap:7px;font-size:12px;font-weight:700}.login-card input{padding:12px;border:1px solid #d7ddd9;border-radius:7px}.login-card .primary{width:100%}.error{color:#b74b43;font-size:11px}.back-link{display:block;margin-top:18px;text-align:center;color:var(--green);font-size:12px}.admin-shell{max-width:1100px;margin:auto;padding:40px 24px}.admin-grid{display:grid;grid-template-columns:360px 1fr;gap:20px}.panel{padding:24px;border:1px solid var(--line);border-radius:12px;background:#fff}.panel h2{margin-top:0}.panel form{display:grid;gap:14px}.panel form label{display:grid;gap:7px;font-size:12px;font-weight:700}.panel form input{padding:11px;border:1px solid #d7ddd9;border-radius:7px}.panel em{font-size:9px}.user-list article{display:flex;align-items:center;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line)}.user-list article>div{display:flex;align-items:center;gap:10px}.user-list article>div:first-child{align-items:flex-start;flex-direction:column;gap:2px}.user-list span,.user-list small{color:var(--muted)}.user-list small{font-size:9px}.user-list em{padding:3px 6px;border-radius:4px;background:#eee;font-style:normal}.user-list em.active{background:#e5f3ec;color:var(--green)}
@media(max-width:900px){.workspace{grid-template-columns:1fr}.preview-pane{border-top:1px solid var(--line)}.admin-grid{grid-template-columns:1fr}}
@media(max-width:600px){.topbar,.public-header{padding:0 12px}.account>span:not(.avatar){display:none}.editor{padding:26px 18px}.preview-pane{padding:25px 15px}.form-grid{grid-template-columns:1fr}.field{grid-column:1}.item-head,.item-row{grid-template-columns:1.4fr 45px 70px 60px 25px}.item-head span:nth-child(5),.item-row strong{display:none}.saved-list article{align-items:flex-start;flex-direction:column}.saved-actions{width:100%}.paper{font-size:8px}.paper-bottom{position:static;margin-top:35px}}
@media print{.topbar,.public-header,.public-main>.hero,.editor,.preview-top{display:none!important}.workspace{display:block}.preview-pane{padding:0;background:#fff}.paper{width:210mm;height:297mm;min-height:0;box-shadow:none;margin:0}.saved-overlay{display:none}}

/* Original app visual alignment */
.editor{padding:36px clamp(32px,5vw,72px) 48px}.editor-heading{align-items:flex-end;margin-bottom:21px}.editor-heading-actions{display:flex;align-items:center;gap:18px}.step-status{display:flex;align-items:center;gap:8px;color:#9aa39f;font-size:10px}.step-status span:first-child{color:var(--green);font-weight:800}.step-status i{width:22px;height:1px;background:#ccd3cf}.guide{display:flex;align-items:center;gap:14px;margin-bottom:25px;border-radius:5px}.guide b{margin:0;white-space:nowrap}.form-grid{gap:16px 18px}.field>span,.section-title>span{font-size:12px}.field input,.field select,.field textarea{min-height:42px;padding:12px;background:#fff}.field input::placeholder,.field textarea::placeholder{color:#a8b0ac}.section-title{display:flex;align-items:center}.section-title small{margin-left:10px;color:#94a09b;font-size:10px}.section-title small em{color:#b74b43;font-style:normal;font-weight:700}.items-table{border-radius:8px}.item-head,.item-row{grid-template-columns:minmax(120px,2fr) 48px minmax(85px,1fr) 67px minmax(76px,1fr) 25px;gap:7px}.item-row input,.item-tax{padding:8px}.money-input{display:flex;align-items:center;border:1px solid #dbe0dc;border-radius:5px;padding-left:7px;background:#fff}.money-input input{border:0;padding-left:4px}.tax-panel{padding:13px 14px 15px;border:0}.tax-panel .section-title small{margin-left:auto}.segmented{display:flex;gap:10px}.segmented button{display:flex;align-items:center;text-align:left;padding:10px;gap:9px}.segmented i{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#edf1ef;color:#73807b;font-style:normal;font-weight:800}.segmented .selected i{background:var(--green);color:#fff}.segmented button>span{display:flex;flex-direction:column}.segmented small{margin-top:2px;color:#87928e;font-size:9px}.details-panel{margin-top:22px;padding:1px 15px 16px;background:#fafbf9}.details-panel .section-title{margin-top:14px}.details-panel .section-title small{margin-left:auto}.payment-switch{margin-bottom:15px}.other-payment textarea{height:92px;white-space:pre-wrap}.note{margin-top:20px}.template-save{display:grid;grid-template-columns:minmax(150px,1fr) minmax(150px,1fr) auto;align-items:center;gap:10px;margin-top:22px;padding:13px 14px;background:#f7f8f6;border:1px solid #e3e7e4;border-radius:8px}.template-save div{display:flex;flex-direction:column;gap:3px;font-size:11px}.template-save small{color:var(--muted);font-size:9px}.template-save input{min-width:0;padding:10px 12px;border:1px solid #d7ddd9;border-radius:7px;background:#fff}.actions{margin-top:25px}.primary{padding:11px 22px}.preview-pane{padding:34px clamp(24px,3vw,48px)}
@media(max-width:900px){.step-status{display:none}}
@media(max-width:600px){.editor{padding:26px 18px}.template-save{grid-template-columns:1fr}.item-head,.item-row{grid-template-columns:1.4fr 45px 68px 60px 25px}.item-head span:nth-child(5),.item-row>strong{display:none}.editor-heading-actions{gap:8px}}

/* Match the original site's typography and compact spacing */
:root{--green:#16765f;--dark:#1b2d29;--ink:#1c2927;--muted:#6f7d79;--line:#dfe5e1}body{font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;font-size:14px}.tax-panel{margin-top:12px;padding:12px 14px 14px}.tax-panel .section-title{margin-bottom:9px}.segmented{width:100%}.segmented button{flex:1;min-width:0;min-height:54px;padding:9px 12px}.segmented i{flex:none}.details-panel{margin-top:18px}.details-panel .section-title{margin-bottom:10px}.field b,.section-title b{font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;font-variant-numeric:tabular-nums}.editor{padding-top:32px}.guide{margin-bottom:22px}.section-title{margin-top:22px}

/* Keep tax-rate labels fully visible beside the native select arrow */
.item-head,.item-row{grid-template-columns:minmax(120px,2fr) 48px minmax(85px,1fr) 86px minmax(76px,1fr) 25px}.item-tax{min-width:86px;padding:8px 24px 8px 8px;font-size:11px}
@media(max-width:600px){.item-head,.item-row{grid-template-columns:1.4fr 45px 68px 74px 25px}.item-tax{min-width:74px;padding-right:20px}}

/* Account settings */
.account-shell{max-width:620px;margin:0 auto;padding:48px 24px}.account-heading{margin-bottom:22px}.account-heading h1{margin:4px 0 8px;font:700 27px Georgia,"Yu Mincho",serif}.account-heading p{margin:0;color:var(--muted);font-size:12px}.account-card{margin-bottom:18px;padding:26px;border:1px solid var(--line);border-radius:12px;background:#fff}.account-card h2{margin:0 0 18px;font-size:17px}.account-form{display:grid;gap:17px}.account-form label{display:grid;gap:7px;font-size:12px;font-weight:700}.account-form input{width:100%;padding:12px;border:1px solid #d7ddd9;border-radius:7px}.account-form small{color:var(--muted);font-weight:400}.account-form .actions{margin-top:5px}.form-message{min-height:20px;margin:15px 0 0;font-size:12px}.form-message.success{color:var(--green)}.form-message.error{color:#b74b43}
.password-reset-card{width:min(480px,100%);padding:25px;border-radius:14px;background:#fff}.password-reset-card h2{margin:0}.password-reset-card>p{color:var(--muted);font-size:12px}.password-reset-card form{display:grid;gap:14px}.password-reset-card label{display:grid;gap:7px;font-size:12px;font-weight:700}.password-reset-card input{width:100%;padding:12px;border:1px solid #d7ddd9;border-radius:7px}.password-reset-card small{color:var(--muted)}.password-reset-card .saved-heading button{cursor:pointer}
.user-list article>div:last-child{flex-wrap:wrap;justify-content:flex-end}

/* Invoice / receipt creation and template tabs */
.document-tabs,.template-type-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:4px;border-radius:9px;background:#eef2ef}.document-tabs{margin:0 0 18px}.document-tabs button,.template-type-tabs button{padding:10px;border:0;border-radius:7px;background:transparent;color:var(--muted);font-weight:700}.document-tabs button.active,.template-type-tabs button.active{background:#fff;color:var(--green);box-shadow:0 2px 8px #20342e17}.template-type-tabs{margin:0 0 12px}.receipt-statement{margin:14px 0 0;padding:12px 15px;border:1px solid #d8e3de;background:#f7faf8}.receipt-statement p{margin:6px 0 0}.document-type-badge{display:inline-block;padding:2px 5px;border-radius:3px;background:#e7efeb;color:var(--green);font-size:9px;font-style:normal}.document-type-badge.receipt{background:#fff0e5;color:#a44718}

/* Let long invoices grow without overlapping totals and footer */
.paper{display:flex;flex-direction:column}.totals{break-inside:avoid}.paper-bottom{position:static;right:auto;bottom:auto;left:auto;margin-top:auto;padding-top:35px;break-inside:avoid}
@media print{.paper{height:auto;min-height:297mm}.paper tr{break-inside:avoid}}
@media(max-width:600px){.topbar{height:auto;min-height:64px;flex-wrap:wrap;padding-top:8px;padding-bottom:8px}.topbar nav{order:3;width:100%;margin:7px 0 0;justify-content:center}.account{gap:5px}.account a{margin-left:5px;font-size:10px}.account-shell{padding:30px 18px}.account-card{padding:20px}}

/* PDF availability and print colors */
button:disabled{cursor:not-allowed;opacity:.45}
@media print{
  .paper,.paper *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;forced-color-adjust:none}
  .paper th{background:#16765f!important;color:#fff!important}
  .amount-box{background:#eef2ef!important;border-left-color:#16765f!important}
  .totals .grand{background:#edf2ef!important}
}

/* Legal pages, footer, and analytics consent */
.site-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 30px;border-top:1px solid var(--line);background:#fff;color:var(--muted);font-size:11px}.site-footer nav{display:flex;align-items:center;gap:18px}.site-footer a,.cookie-settings{border:0;background:none;color:var(--green);font-size:11px;text-decoration:none}.cookie-settings{display:none;padding:0}.public-page .cookie-settings{display:inline}.legal-header{height:64px;display:flex;align-items:center;padding:0 30px;border-bottom:1px solid var(--line);background:#fff}.legal-main{max-width:820px;margin:35px auto;padding:38px 42px;border:1px solid var(--line);border-radius:12px;background:#fff}.legal-main h1{margin:0 0 8px;font:700 30px Georgia,"Yu Mincho",serif}.legal-main .updated{margin:0 0 30px;color:var(--muted);font-size:11px}.legal-main section{margin-top:28px}.legal-main h2{margin:0 0 10px;font-size:17px}.legal-main p,.legal-main li{line-height:1.9}.legal-main ul,.legal-main ol{padding-left:1.5em}.legal-main a{color:var(--green)}.cookie-consent{position:fixed;right:20px;bottom:20px;left:20px;z-index:80;display:flex;align-items:center;justify-content:space-between;gap:24px;max-width:900px;margin:auto;padding:18px 20px;border:1px solid #cedbd5;border-radius:12px;background:#fff;box-shadow:0 14px 45px #14231f2b}.cookie-consent[hidden]{display:none}.cookie-consent p{margin:5px 0 0;color:var(--muted);font-size:11px;line-height:1.7}.cookie-consent a{color:var(--green)}.cookie-actions{display:flex;flex:none;gap:8px}.cookie-actions button{white-space:nowrap}
@media(max-width:600px){.site-footer{align-items:flex-start;flex-direction:column;padding:18px}.site-footer nav{flex-wrap:wrap;gap:12px}.legal-header{padding:0 18px}.legal-main{margin:18px;padding:26px 20px;border-radius:0}.cookie-consent{align-items:stretch;flex-direction:column;right:10px;bottom:10px;left:10px}.cookie-actions{justify-content:flex-end}}
