:root{--bg:oklch(0.968 0.003 255);--surface:#fff;--surface-2:oklch(0.985 0.002 255);--ink:oklch(0.27 0.012 262);--ink-soft:oklch(0.5 0.012 262);--ink-faint:oklch(0.63 0.01 262);--line:oklch(0.91 0.004 262);--line-strong:oklch(0.85 0.006 262);--accent:oklch(0.52 0.115 252);--accent-strong:oklch(0.45 0.125 252);--accent-tint:oklch(0.965 0.02 252);--accent-tint-2:oklch(0.94 0.03 252);--changed:oklch(0.96 0.06 84);--changed-bar:oklch(0.74 0.135 73);--changed-ink:oklch(0.45 0.1 70);--header:oklch(0.285 0.018 262);--header-soft:oklch(0.7 0.015 262);--danger:oklch(0.55 0.16 25);--ok:oklch(0.52 0.11 152);--warn:oklch(0.6 0.13 70);--radius:7px;--shadow-sm:0 1px 2px oklch(0.2 0.02 262/0.06),0 1px 1px oklch(0.2 0.02 262/0.04);--shadow-md:0 6px 22px oklch(0.2 0.02 262/0.12),0 2px 6px oklch(0.2 0.02 262/0.08)}*{box-sizing:border-box}body,html{height:100%}body{margin:0;font-family:Noto Sans JP,Hiragino Kaku Gothic ProN,Yu Gothic UI,system-ui,sans-serif;background:var(--bg);color:var(--ink);font-size:13px;-webkit-font-smoothing:antialiased}.app{display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden}button{cursor:pointer}button,input{font-family:inherit}.mono{font-family:Roboto Mono,ui-monospace,monospace}.tnum{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.app-header{flex:0 0 auto;background:var(--header);color:#fff;gap:18px;padding:0 20px;height:50px;border-bottom:1px solid oklch(.22 .015 262)}.app-header,.brand{display:flex;align-items:center}.brand{gap:11px}.brand-mark{width:26px;height:26px;border-radius:6px;background:linear-gradient(150deg,oklch(.62 .13 252),oklch(.5 .13 252));display:grid;place-items:center;font-weight:700;font-size:13px;color:#fff;box-shadow:inset 0 0 0 1px oklch(1 0 0/.12)}.brand-name{font-weight:700;font-size:15px;letter-spacing:.02em;white-space:nowrap}.brand-sub{font-size:12px;color:var(--header-soft);font-weight:500}.header-divider{width:1px;height:22px;background:oklch(1 0 0/.14)}.tmpl{display:flex;flex-direction:column;line-height:1.35}.tmpl .label{font-size:10px;color:var(--header-soft);letter-spacing:.08em}.tmpl .val{font-size:12.5px;font-weight:500}.header-spacer{flex:1 1}.header-counts{display:flex;gap:16px;align-items:center}.count-chip{display:flex;flex-direction:column;align-items:flex-end;line-height:1.2}.count-chip .n{font-size:16px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.count-chip .t{font-size:10px;color:var(--header-soft);letter-spacing:.06em}.toolbar{flex:0 0 auto;background:var(--surface);border-bottom:1px solid var(--line-strong);display:flex;align-items:stretch;gap:0;padding:9px 16px;box-shadow:var(--shadow-sm);z-index:20;flex-wrap:wrap;row-gap:8px}.fg{display:flex;flex-direction:column;gap:4px;padding:0 14px;justify-content:center;position:relative}.fg:after{content:"";position:absolute;right:0;top:6px;bottom:6px;width:1px;background:var(--line)}.fg:last-of-type:after{display:none}.fg>.fl{font-size:10px;color:var(--ink-soft);letter-spacing:.07em;font-weight:500;text-transform:uppercase;gap:5px}.fg .row,.fg>.fl{display:flex;align-items:center}.fg .row{gap:6px}.ctrl{height:30px;border:1px solid var(--line-strong);border-radius:6px;background:var(--surface);padding:0 9px;font-size:13px;color:var(--ink);outline:none;transition:border-color .12s,box-shadow .12s}.ctrl:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint-2)}input[type=month].ctrl{width:138px}input[type=date].ctrl{width:148px}.ctrl.sm{width:62px;text-align:center;padding:0 6px}.btn{height:30px;border-radius:6px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font-size:12.5px;font-weight:500;padding:0 12px;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;transition:background .12s,border-color .12s,box-shadow .12s,transform .04s}.btn:hover{background:var(--surface-2);border-color:var(--ink-faint)}.btn:active{transform:translateY(1px)}.btn .ico{width:14px;height:14px;display:inline-block}.btn.ghost{border-color:transparent;background:transparent;color:var(--ink-soft);padding:0 9px}.btn.ghost:hover{background:var(--surface-2);color:var(--ink)}.btn.accent{background:var(--accent);border-color:var(--accent);color:#fff}.btn.accent:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600;height:34px;padding:0 16px;font-size:13px;box-shadow:0 1px 2px oklch(.45 .125 252/.25)}.btn.primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.btn.primary.alt{background:var(--surface);color:var(--accent-strong);border-color:var(--accent);box-shadow:none}.btn.primary.alt:hover{background:var(--accent-tint)}.btn.danger{background:oklch(.55 .2 25);border-color:oklch(.55 .2 25);color:#fff}.btn.danger:hover{background:oklch(.48 .21 25);border-color:oklch(.48 .21 25)}.btn[disabled]{opacity:.55;cursor:not-allowed;pointer-events:none}.btn.loading{position:relative;color:transparent!important;pointer-events:none}.btn.loading:after{content:"";position:absolute;inset:0;margin:auto;width:15px;height:15px;border:2px solid;border-top:2px solid transparent;color:#fff}.btn.primary.alt.loading:after{color:var(--accent-strong)}@keyframes spin{to{transform:rotate(1turn)}}.arrow{color:var(--ink-faint);font-size:13px;padding:0 1px}.toolbar-actions{margin-left:auto;display:flex;align-items:center;gap:9px;padding-left:14px}.toolbar-actions .btn{height:34px}.toolbar-actions .btn:not(.primary){padding:0 14px}.toggle{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--ink-soft);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.toggle input{position:absolute;opacity:0;width:0;height:0}.toggle .track{width:30px;height:17px;border-radius:9px;background:var(--line-strong);position:relative;transition:background .14s}.toggle .track:after{content:"";position:absolute;top:2px;left:2px;width:13px;height:13px;border-radius:50%;background:#fff;box-shadow:var(--shadow-sm);transition:transform .14s}.toggle input:checked+.track{background:var(--accent)}.toggle input:checked+.track:after{transform:translateX(13px)}.hidden-input{display:none}.table-wrap{flex:1 1 auto;overflow:auto;background:var(--surface);position:relative}table{border-collapse:separate;border-spacing:0;width:100%;min-width:1440px}thead th{position:-webkit-sticky;position:sticky;top:0;z-index:10;background:var(--surface-2);text-align:left;font-weight:600;font-size:11px;color:var(--ink-soft);letter-spacing:.05em;padding:9px 12px;border-bottom:1.5px solid var(--line-strong);white-space:nowrap}thead th.c-export{width:152px;text-align:center}thead th.c-money{width:740px}thead th.c-cust{width:340px}thead th.c-no{width:156px}tbody td{padding:6px 12px;border-bottom:1px solid var(--line);vertical-align:middle}tbody tr{transition:background .1s}tbody tr:hover{background:var(--surface-2)}tbody tr.inactive-row{background:oklch(.965 .002 262);color:var(--ink-faint)}tbody tr.inactive-row:hover{background:oklch(.95 .002 262)}tbody tr.inactive-row .anken-in,tbody tr.inactive-row .name-in,tbody tr.inactive-row .no-in{color:var(--ink-faint)}td.c-export{text-align:center;vertical-align:middle}.row-export{display:inline-flex;flex-direction:column;align-items:center;gap:5px}.export-actions{display:flex;align-items:center;justify-content:center;gap:6px}.export-btn{height:30px;padding:0 13px;font-size:12px}.last-export{font-size:10.5px;line-height:1.3;color:var(--ink-soft);white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.last-export.never{color:var(--ink-faint);font-style:italic}td.c-drag,thead th.c-drag{width:28px;padding-left:6px;padding-right:0;text-align:center}.drag-handle{display:inline-flex;align-items:center;justify-content:center;width:22px;height:26px;padding:0;border:0;background:transparent;color:var(--ink-faint);border-radius:5px;cursor:-webkit-grab;cursor:grab;touch-action:none}.drag-handle:hover{color:var(--ink-soft);background:var(--surface-2)}.drag-handle:active{cursor:-webkit-grabbing;cursor:grabbing}tbody tr.dragging{opacity:.45}tbody tr.drop-before td{box-shadow:inset 0 2px 0 0 var(--accent)}tbody tr.drop-after td{box-shadow:inset 0 -2px 0 0 var(--accent)}.cust{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.name-in{flex:1 1 120px;min-width:0;height:30px;border:1px solid transparent;border-radius:5px;background:transparent;padding:0 8px;font-size:13px;font-weight:500;color:var(--ink);outline:none;transition:border-color .12s,background .12s,box-shadow .12s}.name-in:hover{border-color:var(--line-strong);background:var(--surface)}.name-in:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-tint-2)}.badge{font-size:11px;font-weight:600;padding:1px 5px;min-width:20px;text-align:center;border-radius:4px;line-height:1.6;white-space:nowrap;background:oklch(.93 .003 262);color:var(--ink-soft);border:1px solid var(--line)}.badge.closed{background:oklch(.93 .01 60);color:oklch(.5 .07 60);border-color:oklch(.86 .04 60)}.badge.zero-tax{background:oklch(.95 .04 70);color:oklch(.5 .1 60);border-color:oklch(.85 .06 70)}.badge.agency{background:oklch(.95 .04 255);color:oklch(.45 .13 265);border-color:oklch(.85 .06 260)}.cust-flags{display:flex;flex-wrap:nowrap;gap:6px 12px;margin-top:5px}.flag{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--ink-soft);white-space:nowrap;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.flag input{width:13px;height:13px;accent-color:var(--accent);cursor:pointer}.del-btn{width:22px;height:22px;padding:0;border-radius:5px;border:1px solid transparent;background:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;display:grid;place-items:center;color:var(--ink-faint);flex:0 0 auto;cursor:pointer}.del-btn .ico{display:block}.del-btn:hover{background:oklch(.95 .05 25);color:oklch(.5 .18 25);border-color:oklch(.85 .08 25)}.row-extra{margin-top:6px}.row-extra>summary{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--ink-soft);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;list-style:none;width:-moz-fit-content;width:fit-content;padding:1px 2px;border-radius:4px}.row-extra>summary::-webkit-details-marker{display:none}.row-extra>summary:before{content:"▸";font-size:9px;color:var(--ink-faint);transition:transform .12s}.row-extra[open]>summary:before{transform:rotate(90deg)}.row-extra>summary:hover{color:var(--ink)}.row-extra>summary.changed{color:var(--changed-ink)}.row-extra .rx-dot{width:6px;height:6px;border-radius:50%;background:var(--changed-bar);display:inline-block}.row-extra-body{margin-top:8px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);display:flex;flex-direction:column;gap:9px}.rx-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));grid-gap:8px;gap:8px}.rx-field{display:flex;flex-direction:column;gap:3px;min-width:0}.rx-field>span{font-size:10px;color:var(--ink-soft);letter-spacing:.02em}.rx-field>input{height:28px;border:1px solid var(--line-strong);border-radius:5px;background:var(--surface);padding:0 7px;font-size:12px;color:var(--ink);outline:none;min-width:0;transition:border-color .12s,box-shadow .12s}.rx-field>input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint-2)}.rx-field>input:disabled{background:oklch(.96 .002 262);color:var(--ink-faint);cursor:not-allowed}.rx-banks{display:flex;align-items:center;flex-wrap:wrap;gap:6px 14px}.rx-banks .rx-lbl{font-size:10px;color:var(--ink-soft);letter-spacing:.02em}.rx-bank{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;color:var(--ink-soft);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.rx-bank input{width:13px;height:13px;accent-color:var(--accent);cursor:pointer}.no-cell{display:flex;flex-direction:column;gap:3px}.no-in{width:130px;height:27px;border:1px solid transparent;border-radius:5px;background:transparent;padding:0 7px;font-size:12.5px;font-weight:500;color:var(--ink);outline:none;font-family:Roboto Mono,monospace;letter-spacing:-.01em;transition:border-color .12s,background .12s,box-shadow .12s}.no-in:hover{border-color:var(--line-strong);background:var(--surface)}.no-in:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-tint-2)}.date-edit{display:flex;align-items:center;gap:4px;padding-left:1px}.date-edit .date-lbl{font-size:10.5px;color:var(--ink-faint)}.date-edit.changed-date .date-lbl{color:var(--changed-ink)}.date-edit .dt-dot{display:none;width:5px;height:5px;border-radius:50%;background:var(--changed-bar)}.date-edit.changed-date .dt-dot{display:inline-block}.date-in{height:24px;border:1px solid transparent;border-radius:5px;background:transparent;padding:0 4px;font-size:11px;color:var(--ink-soft);font-family:Roboto Mono,monospace;outline:none;transition:border-color .12s,background .12s,box-shadow .12s}.date-in:hover{border-color:var(--line-strong);background:var(--surface)}.date-in:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-tint-2)}.date-edit.changed-date .date-in{color:var(--changed-ink);background:var(--changed);box-shadow:inset 3px 0 0 var(--changed-bar)}.anken-in{width:100%;min-width:240px;height:30px;border:1px solid transparent;border-radius:5px;background:transparent;padding:0 8px;font-size:13px;color:var(--ink);outline:none;transition:border-color .12s,background .12s,box-shadow .12s}.anken-in:hover{border-color:var(--line-strong);background:var(--surface)}.anken-in:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-tint-2)}.line-list{display:flex;flex-direction:column;gap:4px}.line{display:grid;grid-template-columns:20px minmax(140px,1.3fr) minmax(140px,1.4fr) minmax(150px,1fr) minmax(110px,.9fr) 16px;align-items:center;grid-gap:6px;gap:6px}.line .lno{font-size:10px;color:var(--ink-faint);font-family:Roboto Mono,monospace;text-align:center}.lin{height:26px;border:1px solid transparent;border-radius:5px;background:transparent;padding:0 6px;font-size:12px;color:var(--ink);outline:none;min-width:0;transition:border-color .12s,background .12s,box-shadow .12s}.lin:hover{border-color:var(--line-strong)}.lin:focus,.lin:hover{background:var(--surface)}.lin:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint-2)}.lin.cat{font-weight:500}.lin.det,.lin.note{color:var(--ink-soft);font-size:11.5px}.lin::placeholder{color:var(--ink-faint);font-weight:400}textarea.lin.cat-area,textarea.lin.det-area{height:auto;min-height:26px;padding:3px 6px;line-height:1.35;resize:none;overflow:hidden;white-space:pre-wrap;display:block;align-self:center}.line .inwrap{display:flex;align-items:center;height:27px;border:1px solid var(--line-strong);border-radius:5px;background:var(--surface);overflow:hidden;transition:border-color .12s,box-shadow .12s}.line .inwrap:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint-2)}.line .yen{padding:0 2px 0 7px;color:var(--ink-faint);font-size:12px}.num-in{flex:1 1;min-width:0;height:100%;border:none;background:transparent;outline:none;text-align:right;padding:0 8px 0 4px;font-size:13px;color:var(--ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-family:Roboto Mono,monospace}.num-in::placeholder{color:var(--ink-faint)}.line .rm{width:16px;height:16px;border:none;background:transparent;color:var(--ink-faint);border-radius:4px;padding:0;text-align:center;font-size:14px;line-height:16px;opacity:1;transition:opacity .12s,background .12s,color .12s}.line .rm:hover{background:oklch(.93 .02 25);color:var(--danger)}.line .rm[disabled]{opacity:0!important;pointer-events:none}.add-line{margin-top:3px;height:23px;border:1px dashed var(--line-strong);border-radius:5px;background:transparent;color:var(--ink-soft);font-size:11px;display:inline-flex;align-items:center;gap:5px;padding:0 10px;width:-moz-fit-content;width:fit-content;transition:border-color .12s,background .12s,color .12s}.add-line:hover{border-color:var(--accent);color:var(--accent-strong);background:var(--accent-tint)}.anken-in.changed,.lin.changed,.line .inwrap.changed,.name-in.changed,.no-in.changed{box-shadow:inset 3px 0 0 var(--changed-bar);background:var(--changed)}.line .inwrap.changed{border-color:var(--changed-bar)}.line .inwrap.changed:focus-within{box-shadow:inset 3px 0 0 var(--changed-bar),0 0 0 3px var(--accent-tint-2)}.table-empty{position:absolute;inset:0;display:grid;place-items:center;color:var(--ink-soft);font-size:13px;padding:24px;text-align:center}.footer{background:var(--surface);border-top:1.5px solid var(--line-strong);align-items:center;gap:0;height:46px;box-shadow:0 -1px 2px oklch(.2 .02 262/.04)}.footer,.stat{flex:0 0 auto;display:flex;padding:0 18px}.stat{align-items:baseline;gap:7px;position:relative;white-space:nowrap}.stat:after{content:"";position:absolute;right:0;top:11px;bottom:11px;width:1px;background:var(--line)}.stat:first-child{padding-left:0}.stat .k{font-size:11px;color:var(--ink-soft)}.stat .v{font-size:15px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat .v.accent{color:var(--accent-strong)}.stat .v.changed-v{color:var(--changed-ink)}.stat .u{font-size:11px;color:var(--ink-soft)}.footer-spacer{flex:1 1}.status-msg{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-soft);margin-left:18px;padding-left:18px;border-left:1px solid var(--line)}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--line-strong);flex:0 0 auto}.status-dot.ok{background:var(--ok)}.status-dot.warn{background:var(--warn)}.status-dot.err{background:var(--danger)}.status-dot.busy{background:var(--accent);animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.toast-stack{position:fixed;right:18px;bottom:60px;display:flex;flex-direction:column;gap:9px;z-index:100;align-items:flex-end}.toast{background:var(--header);color:#fff;border-radius:8px;padding:11px 15px;min-width:240px;max-width:360px;box-shadow:var(--shadow-md);display:flex;align-items:flex-start;gap:11px;animation:toastIn .26s cubic-bezier(.2,.8,.2,1);font-size:12.5px;line-height:1.5}.toast.out{animation:toastOut .22s ease forwards}@keyframes toastIn{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}@keyframes toastOut{to{opacity:0;transform:translateX(12px)}}.toast .ticon{width:18px;height:18px;flex:0 0 auto;margin-top:1px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700}.toast.ok .ticon{background:var(--ok)}.toast.err .ticon{background:var(--danger)}.toast.warn .ticon{background:var(--warn)}.toast.info .ticon{background:var(--accent)}.toast .tbody{flex:1 1}.toast .tt{font-weight:600;margin-bottom:1px}.toast .ts{color:oklch(.82 .01 262);font-size:11.5px}.modal-bg{position:fixed;inset:0;background:oklch(.2 .02 262/.4);z-index:200;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px);animation:fadein .15s ease}@keyframes fadein{0%{opacity:0}to{opacity:1}}.modal{background:var(--surface);border-radius:12px;box-shadow:var(--shadow-md);width:420px;max-width:92vw;padding:22px;animation:modalin .2s cubic-bezier(.2,.8,.2,1)}@keyframes modalin{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}.modal h3{margin:0 0 8px;font-size:15px}.modal p{margin:0 0 6px;font-size:13px;color:var(--ink-soft);line-height:1.6}.modal .preview{background:var(--surface-2);border:1px solid var(--line);border-radius:7px;padding:11px 13px;margin:12px 0 16px;font-size:12.5px}.modal .preview .pl{color:var(--ink-faint);font-size:11px;margin-bottom:4px}.modal .preview .from{color:var(--ink-soft);text-decoration:line-through}.modal .preview .to{color:var(--accent-strong);font-weight:600}.modal-actions{display:flex;justify-content:flex-end;gap:9px}kbd{font-family:Roboto Mono,monospace;font-size:10px;background:oklch(.93 .003 262);border:solid var(--line-strong);border-width:1px 1px 2px;border-radius:4px;padding:1px 5px;color:var(--ink-soft)}.kbd-hint{font-size:11px;color:var(--ink-faint);display:flex;align-items:center;gap:6px}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:7px;border:3px solid var(--surface)}::-webkit-scrollbar-thumb:hover{background:var(--ink-faint)}.header-user{display:flex;align-items:center;gap:10px}.header-user-email{font-size:11.5px;color:var(--header-soft);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-signout{height:28px;border-radius:6px;border:1px solid oklch(1 0 0/.18);background:oklch(1 0 0/.06);color:#fff;font-size:12px;font-weight:500;padding:0 12px;white-space:nowrap;transition:background .12s,border-color .12s}.header-signout:hover{background:oklch(1 0 0/.14);border-color:oklch(1 0 0/.3)}.auth-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--bg)}.auth-loading{color:var(--ink-soft);font-size:13px}.auth-card{width:340px;max-width:92vw;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-md);padding:26px 24px;display:flex;flex-direction:column;gap:14px}.auth-brand{display:flex;align-items:center;gap:11px;margin-bottom:4px}.auth-title{display:flex;flex-direction:column;line-height:1.3;font-weight:700;font-size:16px}.auth-sub{font-size:11px;color:var(--ink-soft);font-weight:500}.auth-field{display:flex;flex-direction:column;gap:5px}.auth-field>span{font-size:11px;color:var(--ink-soft);letter-spacing:.04em;font-weight:500}.auth-field .ctrl{height:36px;width:100%}.auth-card .btn.primary{height:38px;justify-content:center;margin-top:2px}.auth-error{font-size:12px;color:var(--danger);background:oklch(.96 .03 25);border:1px solid oklch(.88 .06 25);border-radius:6px;padding:8px 10px;line-height:1.5}.auth-note{margin:2px 0 0;font-size:11px;color:var(--ink-faint);line-height:1.6}.header-tools-toggle{display:none;width:34px;height:34px;flex:0 0 auto;border-radius:7px;border:1px solid oklch(1 0 0/.18);background:oklch(1 0 0/.06);color:#fff;place-items:center;padding:0;transition:background .12s,border-color .12s}.header-tools-toggle:hover{background:oklch(1 0 0/.14);border-color:oklch(1 0 0/.3)}@media (max-width:1440px){.app-header{gap:12px;padding:0 14px}.tmpl{min-width:0;max-width:240px}.tmpl .val{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-user-email{max-width:140px}.kbd-hint{display:none}}@media (max-width:768px){.app-header{flex-wrap:wrap;height:auto;min-height:50px;padding:8px 12px;gap:8px 10px;row-gap:6px}.header-tools-toggle{display:grid}.header-divider,.header-user-email,.tmpl{display:none}.brand-name{font-size:14px}.header-counts{gap:12px}.count-chip .n{font-size:14px}.header-signout{height:30px;padding:0 10px}.toolbar{display:none}.app.tools-open .toolbar{display:flex;flex-direction:column;align-items:stretch;gap:0;row-gap:0;padding:8px 12px 12px;max-height:62vh;overflow-y:auto}.toolbar .fg{padding:11px 0;border-bottom:1px solid var(--line)}.toolbar .fg:after{display:none}.toolbar .fg:first-of-type{padding-top:4px}.toolbar .fg:last-of-type{border-bottom:none}.toolbar .fg .row{flex-wrap:wrap;gap:8px}.toolbar .ctrl{height:38px}input[type=date].ctrl,input[type=month].ctrl{width:auto;flex:1 1 140px;min-width:130px}.toolbar .btn{height:38px}.toolbar-actions{margin-left:0;padding:12px 0 0;flex-wrap:wrap;gap:10px}.toolbar-actions .btn{flex:1 1;height:40px;justify-content:center}}@media (min-width:769px) and (max-width:1440px){.toolbar-actions{flex:1 1 100%;margin-left:0;padding-left:0;justify-content:center}}@media (max-width:1440px){.table-wrap{-webkit-overflow-scrolling:touch;background:var(--bg)}table{display:block;width:100%;min-width:0}thead{display:none}tbody{flex-direction:column;gap:10px;padding:12px 10px}tbody,tbody tr,tbody tr:hover{display:flex;align-items:center}tbody tr,tbody tr:hover{flex-wrap:wrap;gap:8px;width:100%;max-width:760px;background:var(--surface);border:1px solid var(--line-strong);border-radius:10px;padding:12px;box-shadow:var(--shadow-sm);transition:none}tbody td{display:block;border:none;padding:0}.cust-flags{flex-wrap:nowrap;gap:6px 10px}td.c-cust{order:1;flex:1 1 auto;min-width:0}td.c-drag{order:2;width:auto;flex:0 0 auto;padding:0}td.c-anken,td.c-money,td.c-no{order:3;flex:1 1 100%;width:auto}td.c-anken{order:4}td.c-money{order:5}td.c-export,td.c-money{border-top:1px solid var(--line);padding-top:10px}td.c-export{order:6;flex:1 1 100%;width:auto}.row-export{width:100%;gap:7px}.export-actions{width:100%}.export-btn{height:38px;flex:1 1 auto;justify-content:center}.export-actions .del-btn{width:44px;height:38px;flex:0 0 auto}.last-export{font-size:11.5px}td.c-anken:before,td.c-money:before,td.c-no:before{display:block;font-size:10px;font-weight:600;letter-spacing:.06em;color:var(--ink-soft);margin-bottom:5px}td.c-no:before{content:"帳票番号 / 請求日"}td.c-anken:before{content:"案件名"}td.c-money:before{content:"明細（カテゴリー / 内訳 / 手数料 / 備考）"}.anken-in,.lin,.name-in,.no-in,textarea.lin.det-area{border-color:var(--line-strong);background:var(--surface)}.no-in{width:100%;height:34px}.anken-in{width:100%;min-width:0;height:38px}.line{grid-template-columns:16px 1fr auto;grid-template-areas:"lno cat  rm" "lno det  det" "lno money money" "lno note note";gap:6px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}.line .lno{grid-area:lno;align-self:start;padding-top:8px}.line .lin.cat{grid-area:cat}.line textarea.lin.det-area{grid-area:det}.line .inwrap{grid-area:money}.line .lin.note{grid-area:note}.line .rm{grid-area:rm;opacity:1;width:22px;height:22px;font-size:16px;line-height:22px}.lin,.line .inwrap{height:34px}.add-line{height:32px;width:100%;justify-content:center}}@media (max-width:768px){tbody{padding:10px}tbody tr,tbody tr:hover{max-width:none;padding:12px}.footer{height:auto;min-height:46px;flex-wrap:wrap;padding:6px 12px;row-gap:4px}.stat{padding:0 12px}.status-msg{width:100%;margin-left:0;padding-left:0;border-left:none;min-width:0}.status-msg>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toast-stack{left:10px;right:10px;bottom:12px;align-items:stretch}.toast{min-width:0;max-width:none}}@media (max-width:480px){.brand-sub,.header-counts .count-chip:first-child,.header-counts .header-divider{display:none}.toolbar-actions .btn{flex:1 1 100%}}.add-line,.btn,.header-signout{position:relative;overflow:hidden}.btn{transition:background .14s,border-color .14s,box-shadow .18s,transform .16s cubic-bezier(.34,1.56,.64,1)}.btn:active{transform:translateY(1px) scale(.985)}.fx-ripple{position:absolute;border-radius:50%;transform:translate(-50%,-50%) scale(0);pointer-events:none;background:radial-gradient(circle,currentColor 0,transparent 66%);opacity:.26;will-change:transform,opacity;animation:fxRipple .55s cubic-bezier(.2,.7,.3,1) forwards}@keyframes fxRipple{to{transform:translate(-50%,-50%) scale(1);opacity:0}}.btn.accent,.btn.primary:not(.alt){background-image:linear-gradient(180deg,oklch(1 0 0/.14),oklch(1 0 0/0) 55%,oklch(0 0 0/.06))}.btn.accent:before,.btn.primary:not(.alt):before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 32%,oklch(1 0 0/.38) 46%,transparent 60%);transform:translateX(-130%);transition:transform .6s cubic-bezier(.2,.7,.3,1)}.btn.accent:hover:before,.btn.primary:not(.alt):hover:before{transform:translateX(130%)}.btn.primary:hover{transform:translateY(-1px);box-shadow:0 4px 16px oklch(.45 .125 252/.38),0 1px 2px oklch(.45 .125 252/.3)}.btn.primary:active{transform:translateY(0) scale(.98)}.btn.primary.alt:hover{box-shadow:0 3px 12px oklch(.52 .115 252/.18)}.btn.primary.loading{animation:fxExportGlow 1.3s ease-in-out infinite}@keyframes fxExportGlow{0%,to{box-shadow:0 1px 2px oklch(.45 .125 252/.25)}50%{box-shadow:0 0 0 3px var(--accent-tint-2),0 4px 18px oklch(.5 .13 252/.55)}}.btn.loading:after{width:16px;height:16px;border:none;border-radius:50%;background:conic-gradient(from 0deg,transparent 0,currentColor 92%);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 2.5px),#000 0);mask:radial-gradient(farthest-side,transparent calc(100% - 2.5px),#000 0);animation:spin .7s linear infinite}.fx-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:250;pointer-events:none;overflow:hidden;background:oklch(.9 .02 252/.45);animation:fxProgIn .2s ease}@keyframes fxProgIn{0%{opacity:0}}.fx-progress-fill{position:absolute;inset:0;transform-origin:left center;transform:scaleX(0);background:linear-gradient(90deg,oklch(.6 .13 252),oklch(.52 .125 252),oklch(.72 .14 205));box-shadow:0 0 12px oklch(.6 .14 252/.7);transition:transform .35s cubic-bezier(.4,0,.2,1)}.fx-progress.done{animation:fxProgOut .45s ease forwards}.fx-progress.done .fx-progress-fill{transform:scaleX(1)!important;transition:transform .22s ease}@keyframes fxProgOut{to{opacity:0}}.fx-progress-shine{position:absolute;top:0;bottom:0;width:28%;background:linear-gradient(90deg,transparent,oklch(1 0 0/.85),transparent);animation:fxProgShine 1.1s linear infinite}@keyframes fxProgShine{0%{left:-28%}to{left:100%}}.export-overlay{position:fixed;inset:0;z-index:260;display:flex;align-items:center;justify-content:center;padding:24px;background:oklch(.2 .02 262/.46);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fxModalBg .22s ease forwards}.export-overlay.closing{animation:fxProgOut .3s ease forwards}.export-card{width:440px;max-width:92vw;background:var(--surface);border-radius:14px;box-shadow:var(--shadow-md);padding:22px 24px 20px;animation:modalin .24s cubic-bezier(.2,.8,.2,1)}.export-card-head{display:flex;align-items:center;gap:11px;margin-bottom:6px}.export-card-head h3{margin:0;font-size:15.5px;color:var(--ink)}.export-spinner{width:18px;height:18px;flex:none;border-radius:50%;background:conic-gradient(from 0deg,oklch(.6 .13 252/0),var(--accent));-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 0);mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 0);animation:spin .7s linear infinite}.export-sub{margin:0 0 16px;font-size:12.5px;color:var(--ink-soft);line-height:1.6}.export-bar{position:relative;height:12px;border-radius:999px;overflow:hidden;background:oklch(.9 .02 252/.6);box-shadow:inset 0 1px 2px oklch(.5 .02 262/.18)}.export-bar-fill{position:absolute;inset:0;transform-origin:left center;transform:scaleX(0);border-radius:999px;background:linear-gradient(90deg,oklch(.6 .13 252),oklch(.52 .125 252),oklch(.72 .14 205));box-shadow:0 0 12px oklch(.6 .14 252/.6);transition:transform .35s cubic-bezier(.4,0,.2,1)}.export-bar-shine{position:absolute;top:0;bottom:0;width:28%;background:linear-gradient(90deg,transparent,oklch(1 0 0/.85),transparent);animation:fxProgShine 1.1s linear infinite}.export-meta{display:flex;justify-content:space-between;align-items:baseline;margin-top:11px}.export-count{font-size:14px;font-weight:700;color:var(--ink)}.export-pct{font-size:12.5px;font-weight:600;color:var(--accent-strong)}.export-current{margin-top:8px;font-size:12px;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (prefers-reduced-motion:reduce){.export-bar-shine,.export-card,.export-overlay,.export-spinner{animation:none!important}}.fx-fxlayer{position:fixed;inset:0;z-index:300;pointer-events:none;overflow:hidden}.fx-spark{position:absolute;width:var(--sz,8px);height:var(--sz,8px);border-radius:50%;background:var(--c,gold);box-shadow:0 0 7px var(--c,gold);transform:translate(-50%,-50%);opacity:0;will-change:transform,opacity;animation:fxSpark var(--dur,.9s) cubic-bezier(.12,.6,.3,1) var(--delay,0s) forwards}@keyframes fxSpark{0%{opacity:1;transform:translate(-50%,-50%) translate(0) scale(.4)}70%{opacity:1}to{opacity:0;transform:translate(-50%,-50%) translate(var(--dx,0),var(--dy,0)) scale(1)}}.fx-ring{position:absolute;border-radius:50%;border:2px solid oklch(.6 .13 252);transform:translate(-50%,-50%) scale(0);opacity:.55;will-change:transform,opacity;animation:fxRing .7s ease-out forwards}@keyframes fxRing{to{transform:translate(-50%,-50%) scale(2.6);opacity:0}}.anken-in.changed,.lin.changed,.line .inwrap.changed,.no-in.changed{animation:fxChanged .55s ease-out}@keyframes fxChanged{0%{outline:2px solid oklch(.74 .135 73/.7);outline-offset:0}to{outline:2px solid transparent;outline-offset:3px}}.fx-line-in{animation:fxLineIn .3s cubic-bezier(.2,.8,.2,1)}@keyframes fxLineIn{0%{opacity:0;transform:translateY(-5px) scale(.99)}}.toast{position:relative;overflow:hidden}.toast .ticon{animation:fxToastPop .4s cubic-bezier(.2,1.4,.5,1) .05s both}@keyframes fxToastPop{0%{transform:scale(.2);opacity:0}}.toast:after{content:"";position:absolute;left:0;bottom:0;height:2px;width:100%;background:currentColor;opacity:.45;transform-origin:left center;animation:fxToastBar 3.6s linear forwards}.toast.out:after{animation:none}@keyframes fxToastBar{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.modal-bg{animation:fxModalBg .22s ease forwards}@keyframes fxModalBg{0%{opacity:0;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}to{opacity:1;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}}@media (prefers-reduced-motion:reduce){.btn{transition:background .12s,border-color .12s,box-shadow .12s}.btn.accent:before,.btn.primary:not(.alt):before,.fx-progress-shine,.fx-ring,.fx-ripple,.fx-spark{display:none!important}.anken-in.changed,.btn.primary.loading,.fx-line-in,.lin.changed,.line .inwrap.changed,.modal-bg,.no-in.changed,.toast .ticon,.toast:after{animation:none!important}.modal-bg{-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px)}}