#root{all:unset;display:block}@keyframes blob1{0%,to{border-radius:60% 40% 55% 45%/58% 44% 56% 42%;transform:translate(0)rotate(0)scale(1)}33%{border-radius:40% 60% 35% 65%/45% 55%;transform:translate(18px,-14px)rotate(6deg)scale(1.04)}66%{border-radius:55% 45% 65% 35%/35% 65%;transform:translate(-14px,18px)rotate(-3deg)scale(.97)}}@keyframes blob2{0%,to{border-radius:40% 60% 45% 55%/50% 40% 60% 50%;transform:translate(0)rotate(0)scale(1)}40%{border-radius:65% 35% 60% 40%/35% 65%;transform:translate(-22px,12px)rotate(-9deg)scale(1.06)}80%{border-radius:35% 65% 40% 60%/60% 40%;transform:translate(16px,-20px)rotate(5deg)scale(.95)}}@keyframes blob3{0%,to{border-radius:50% 50% 40% 60%/40% 60% 50% 50%;transform:translate(0)scale(1)}50%{border-radius:35% 65% 55% 45%/55% 45% 35% 65%;transform:translate(22px,18px)scale(1.08)}}:root{--bg:oklch(98.4% .006 250);--bg-subtle:oklch(96.2% .015 250);--bg-panel:oklch(100% 0 0);--border:oklch(91% .008 250);--border-strong:oklch(84% .012 250);--ink:oklch(18.5% .025 250);--ink-soft:oklch(42.5% .02 250);--ink-faint:oklch(62% .012 250);--accent:oklch(52% .2 260);--accent-soft:oklch(96.2% .015 250);--accent-ink:oklch(38.5% .185 260);--warn:oklch(75% .14 75);--warn-soft:oklch(96% .06 85);--warn-ink:oklch(45% .13 60);--ok:oklch(60% .13 155);--ok-soft:oklch(95% .04 155);--danger:oklch(56% .18 25);--radius:7px;--radius-sm:4px;--radius-lg:12px;--font-sans:"Noto Sans JP", "Hiragino Sans", "Yu Gothic", sans-serif;--font-mono:"IBM Plex Mono", "SFMono-Regular", Menlo, Consolas, monospace;--shadow-xs:0 1px 2px oklch(18.5% .025 250/.06);--shadow-sm:0 1px 3px oklch(18.5% .025 250/.07), 0 2px 6px oklch(18.5% .025 250/.04);--shadow:0 2px 6px oklch(18.5% .025 250/.08), 0 6px 20px oklch(18.5% .025 250/.05);--shadow-md:0 4px 12px oklch(18.5% .025 250/.1), 0 12px 32px oklch(18.5% .025 250/.07);--sidebar-w:220px;--ease:cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box}html,body{font-family:var(--font-sans);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;font-feature-settings:"palt";margin:0;padding:0;font-size:14px;line-height:1.55}button{cursor:pointer;font-family:inherit}input,select,textarea{color:inherit;font-family:inherit}a{text-decoration:none}.mono{font-family:var(--font-mono);font-feature-settings:"tnum"}.app-shell{grid-template-columns:var(--sidebar-w) 1fr;background:var(--bg);width:100vw;height:100vh;display:grid;overflow:hidden}.app-main{background:var(--bg);height:100vh;overflow:hidden auto}.sidebar{background:linear-gradient(#0f172a 0%,#1e3a8a 100%);border-right:none;flex-direction:column;height:100vh;display:flex;overflow:hidden}.sidebar-brand{border-bottom:1px solid #ffffff14;flex-direction:column;align-items:flex-start;gap:0;padding:20px 16px 16px;display:flex}.sidebar-brand img{object-fit:contain;object-position:left;filter:brightness(0)invert();opacity:.85;height:36px;margin-bottom:6px}.sidebar-brand .brand-sub{color:#ffffff59;font-size:10px;font-family:var(--font-mono);letter-spacing:.04em}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:12px 8px;display:flex;overflow-y:auto}.sidebar-cta{border-radius:var(--radius);color:#fff;transition:background .15s var(--ease), transform .12s var(--ease), box-shadow .15s var(--ease);cursor:pointer;background:#2563eb;border:none;align-items:center;gap:8px;margin-bottom:8px;padding:10px 14px;font-size:13px;font-weight:600;display:flex;box-shadow:0 2px 8px #2563eb66}.sidebar-cta:hover{color:#fff;background:#1d4ed8;transform:translateY(-1px);box-shadow:0 4px 14px #2563eb8c}.sidebar-cta.active{background:#1d4ed8}.sidebar-section{font-size:10px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:#ffffff52;padding:8px 10px 4px;font-weight:500}.sidebar-item{border-radius:var(--radius);color:#ffffff9e;cursor:pointer;transition:background .12s var(--ease), color .12s var(--ease);text-align:left;background:0 0;border:1px solid #0000;align-items:center;gap:10px;width:100%;padding:9px 12px;font-family:inherit;font-size:13px;text-decoration:none;display:flex}.sidebar-item svg{opacity:.7;flex-shrink:0;transition:opacity .12s}.sidebar-item:hover{color:#ffffffeb;background:#ffffff14}.sidebar-item:hover svg{opacity:1}.sidebar-item.active{color:#fff;background:#ffffff1f;font-weight:500}.sidebar-item.active svg{opacity:1}.sidebar-footer{border-top:1px solid #ffffff14;padding:10px 8px}.upload-shell{background:var(--bg);grid-template-rows:56px 1fr 28px;height:100vh;display:grid;overflow:hidden}.stepper{background:var(--bg-panel);border-bottom:1px solid var(--border);grid-template-columns:repeat(4,1fr);display:grid}.step{border-right:1px solid var(--border);color:var(--ink-faint);transition:background .15s var(--ease);align-items:center;gap:12px;padding:0 20px;display:flex;position:relative}.step:last-child{border-right:none}.step .num{border:1px solid var(--border-strong);width:24px;height:24px;font-family:var(--font-mono);color:var(--ink-faint);background:var(--bg);transition:all .2s var(--ease);border-radius:50%;flex-shrink:0;place-items:center;font-size:11px;display:grid}.step .lbl{flex-direction:column;display:flex}.step .lbl .ja{font-size:13px;font-weight:500}.step .lbl .en{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);font-size:10px}.step.active{color:var(--ink);background:var(--bg-subtle)}.step.active .num{background:var(--ink);color:var(--bg-panel);border-color:var(--ink)}.step.done{color:var(--ink-soft)}.step.done .num{background:var(--ok);color:#fff;border-color:var(--ok)}.step .meta{font-family:var(--font-mono);color:var(--ink-faint);margin-left:auto;font-size:11px}.statusbar{background:var(--bg-panel);border-top:1px solid var(--border);font-family:var(--font-mono);color:var(--ink-faint);text-transform:uppercase;letter-spacing:.06em;justify-content:space-between;align-items:center;padding:0 16px;font-size:10px;display:flex}.statusbar .dot{background:var(--ok);border-radius:50%;width:6px;height:6px;margin-right:6px;animation:2.5s infinite pulse;display:inline-block}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.statusbar .grp{align-items:center;gap:16px;display:flex}.page-header{border-bottom:1px solid var(--border);background:var(--bg-panel);justify-content:space-between;align-items:flex-end;gap:16px;padding:24px 28px 20px;display:flex}.page-label{font-size:11px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);margin-bottom:4px;font-weight:500}.page-title{color:var(--ink);margin:0;font-size:22px;font-weight:700;line-height:1.2}.page-sub{color:var(--ink-soft);margin-top:4px;font-size:13px}.main{min-height:0;display:grid;overflow:hidden}.card{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-xs)}.card-raised{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:box-shadow .18s var(--ease), transform .18s var(--ease)}.card-raised:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.stats-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-xs);transition:box-shadow .18s var(--ease), transform .18s var(--ease);padding:16px 18px}.stats-card:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.stats-card .row{border-bottom:1px dashed var(--border);justify-content:space-between;padding:6px 0;font-size:13px;display:flex}.stats-card .row:last-child{border-bottom:none}.stats-card .row .v{font-family:var(--font-mono)}.upload-screen{grid-template-columns:1fr 300px;height:100%;min-height:0;display:grid;overflow:hidden}.dropzone{background:repeating-linear-gradient(45deg, transparent 0 14px, oklch(95% .005 85) 14px 15px), var(--bg-subtle);border-right:1px solid var(--border);flex-direction:column;justify-content:center;align-items:center;gap:20px;padding:40px;transition:background .15s;display:flex;position:relative}.dropzone.drag-over{background:repeating-linear-gradient(45deg, transparent 0 14px, oklch(93% .05 260) 14px 15px), var(--accent-soft)}.dropzone.drag-over .frame{border-color:var(--accent);background:var(--accent-soft)}.dropzone .frame{border:2px dashed var(--border-strong);border-radius:var(--radius-lg);background:var(--bg-panel);text-align:center;max-width:520px;box-shadow:var(--shadow);flex-direction:column;align-items:center;gap:16px;padding:56px 72px;transition:border-color .15s,background .15s;display:flex}.dropzone .icon{background:var(--accent-soft);width:52px;height:52px;color:var(--accent-ink);border-radius:12px;place-items:center;display:grid}.dropzone h2{margin:0;font-size:20px;font-weight:700}.dropzone p{color:var(--ink-soft);max-width:380px;margin:0;font-size:14px;line-height:1.6}.dropzone .formats{flex-wrap:wrap;justify-content:center;gap:6px;margin-top:4px;display:flex}.dropzone .formats span{font-family:var(--font-mono);background:var(--bg-subtle);border:1px solid var(--border);color:var(--ink-soft);border-radius:4px;padding:3px 7px;font-size:10px}.dropzone .actions{gap:10px;margin-top:8px;display:flex}.upload-side{flex-direction:column;gap:18px;min-height:0;padding:20px;display:flex;overflow-y:auto}.upload-side h3{font-size:11px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);margin:0 0 8px;font-weight:500}.queue-item{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-panel);grid-template-columns:40px 1fr auto;align-items:center;gap:10px;margin-bottom:6px;padding:10px;display:grid}.queue-item .thumb{background:var(--bg-subtle);background-position:50%;background-size:cover;border-radius:4px;width:40px;height:40px}.queue-item .meta{min-width:0}.queue-item .meta .name{white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.queue-item .meta .size{font-family:var(--font-mono);color:var(--ink-faint);font-size:10px}.processing-screen{flex-direction:column;justify-content:center;align-items:center;gap:32px;padding:40px;display:flex}.processing-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-lg);width:min(640px,100%);box-shadow:var(--shadow);padding:32px}.processing-card h2{margin:0 0 4px;font-size:18px;font-weight:700}.processing-card .sub{color:var(--ink-soft);margin-bottom:24px;font-size:13px}.progress-track{background:var(--bg-subtle);border-radius:2px;height:3px;margin-bottom:20px;overflow:hidden}.progress-fill{background:var(--accent);height:100%;transition:width .4s var(--ease)}.log{font-family:var(--font-mono);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);height:160px;color:var(--ink-soft);padding:12px;font-size:11px;overflow:auto}.log .line{padding:2px 0}.log .line .t{color:var(--ink-faint);margin-right:8px}.log .line.ok .s{color:var(--ok)}.log .line.info .s{color:var(--accent)}.log .line.warn .s{color:var(--warn-ink)}.workbench{background:var(--bg);grid-template-columns:minmax(400px,1fr) minmax(680px,1.4fr);height:100%;display:grid}.viewer{background:var(--bg-subtle);border-right:1px solid var(--border);flex-direction:column;display:flex;position:relative;overflow:hidden}.viewer-toolbar{background:var(--bg-panel);border-bottom:1px solid var(--border);height:42px;font-family:var(--font-mono);align-items:center;gap:8px;padding:0 14px;font-size:11px;display:flex}.viewer-toolbar .file{color:var(--ink);font-weight:500}.viewer-toolbar .pager{color:var(--ink-faint);align-items:center;gap:4px;margin-left:auto;display:flex}.viewer-canvas{background:linear-gradient(oklch(94% .005 85/.6) 1px, transparent 1px), linear-gradient(90deg, oklch(94% .005 85/.6) 1px, transparent 1px), var(--bg-subtle);background-size:16px 16px;flex:1;place-items:center;padding:24px;display:grid;position:relative;overflow:auto}.viewer-inner{max-width:100%;max-height:100%;box-shadow:var(--shadow);position:relative}.viewer-inner img{border-radius:4px;max-width:100%;max-height:70vh;display:block}.viewer-footer{border-top:1px solid var(--border);background:var(--bg-panel);height:36px;color:var(--ink-soft);align-items:center;gap:8px;padding:0 14px;font-size:11px;display:flex}.viewer-footer .legend{font-family:var(--font-mono);align-items:center;gap:14px;font-size:10px;display:flex}.receipt-pin{cursor:pointer;z-index:10;background:var(--accent);color:#fff;font-family:var(--font-mono);white-space:nowrap;transition:transform .15s var(--ease), box-shadow .15s var(--ease);letter-spacing:.03em;-webkit-user-select:none;user-select:none;border-radius:20px;align-items:center;gap:4px;padding:3px 8px 3px 5px;font-size:10px;font-weight:500;display:inline-flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 6px oklch(0% 0 0/.22)}.receipt-pin:before{content:"";opacity:.5;background:#fff;border-radius:50%;flex-shrink:0;width:6px;height:6px}.receipt-pin:hover{transform:translate(-50%,-50%)scale(1.08);box-shadow:0 4px 10px oklch(0% 0 0/.28)}.receipt-pin.active{box-shadow:0 0 0 2px white, 0 0 0 4px var(--accent), 0 4px 10px oklch(0% 0 0/.22);transform:translate(-50%,-50%)scale(1.1)}.receipt-pin.warn{background:var(--warn-ink)}.receipt-pin.warn.active{box-shadow:0 0 0 2px white, 0 0 0 4px var(--warn-ink), 0 4px 10px oklch(0% 0 0/.22)}.receipt-pin.confirmed{background:var(--ok)}.receipt-pin.confirmed.active{box-shadow:0 0 0 2px white, 0 0 0 4px var(--ok), 0 4px 10px oklch(0% 0 0/.22)}.data-panel{flex-direction:column;display:flex;overflow:hidden}.data-toolbar{background:var(--bg-panel);border-bottom:1px solid var(--border);align-items:center;gap:8px;height:42px;padding:0 14px;display:flex}.data-toolbar .search{flex:1;max-width:260px;position:relative}.data-toolbar .search input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);width:100%;padding:6px 10px 6px 28px;font-size:13px;transition:border-color .12s}.data-toolbar .search input:focus{border-color:var(--accent);outline:none}.data-toolbar .search svg{color:var(--ink-faint);position:absolute;top:50%;left:8px;transform:translateY(-50%)}.data-toolbar .filters{font-family:var(--font-mono);gap:4px;margin-left:auto;font-size:10px;display:flex}.chip{background:var(--bg-subtle);border:1px solid var(--border);color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;transition:background .12s var(--ease), color .12s var(--ease), border-color .12s var(--ease);border-radius:12px;align-items:center;gap:4px;padding:4px 10px;font-size:11px;display:inline-flex}.chip:hover{background:var(--bg-panel);color:var(--ink);border-color:var(--border-strong)}.chip.active{color:#fff;background:#2563eb;border-color:#2563eb}.chip .count{background:oklch(100% 0 0/.15);border-radius:8px;padding:1px 5px;font-size:9px}.chip:not(.active) .count{background:var(--bg-panel);color:var(--ink-soft)}.table-wrap{background:var(--bg-panel);flex:1;overflow:auto}table.grid{border-collapse:separate;border-spacing:0;width:100%;font-size:13px}table.grid thead th{background:var(--bg-subtle);font-size:11px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.07em;color:var(--ink-faint);text-align:left;border-bottom:1px solid var(--border-strong);border-right:1px solid var(--border);white-space:nowrap;z-index:2;padding:9px 12px;font-weight:500;position:sticky;top:0}table.grid thead th:last-child{border-right:none}table.grid tbody td{border-bottom:1px solid var(--border);border-right:1px solid var(--border);vertical-align:middle;padding:0;transition:background .1s;position:relative}table.grid tbody td:last-child{border-right:none}table.grid tbody tr{transition:background .1s}table.grid tbody tr.active{background:var(--accent-soft)}table.grid tbody tr.confirmed{background:oklch(60% .13 155/.04)}table.grid tbody tr.selected{background:oklch(92% .04 260/.5)}table.grid tbody tr:hover{background:var(--bg-subtle)}table.grid tbody tr.active:hover{background:var(--accent-soft)}table.grid tbody tr.selected:hover{background:oklch(88% .06 260/.5)}td .cell{align-items:center;gap:6px;min-height:36px;padding:9px 12px;display:flex}td.editable .cell{cursor:text}td.editable:focus-within{box-shadow:inset 0 0 0 2px var(--accent);background:var(--bg-panel)}td input,td select{background:0 0;border:none;outline:none;width:100%;padding:0;font-size:13px}td.num{text-align:right}td.num .cell{font-family:var(--font-mono);font-feature-settings:"tnum";justify-content:flex-end}td.num input{text-align:right;font-family:var(--font-mono)}.row-number{text-align:center;width:36px;font-family:var(--font-mono);color:var(--ink-faint);padding:0;font-size:11px;background:var(--bg-subtle)!important}.row-number .cell{justify-content:center}.conf{font-family:var(--font-mono);align-items:center;gap:4px;font-size:10px;display:inline-flex}.conf .bar{background:var(--bg-subtle);border-radius:2px;width:24px;height:3px;overflow:hidden}.conf .bar i{background:var(--ok);height:100%;display:block}.conf.warn .bar i{background:var(--warn)}.conf.warn{color:var(--warn-ink)}.flag{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;border-radius:3px;align-items:center;gap:4px;padding:2px 6px;font-size:9px;display:inline-flex}.flag.warn{background:var(--warn-soft);color:var(--warn-ink)}.flag.ok{background:var(--ok-soft);color:var(--ok)}.tax-pill{background:var(--bg-subtle);font-family:var(--font-mono);color:var(--ink-soft);border-radius:4px;padding:2px 7px;font-size:11px;font-weight:500}.tax-pill.t10{color:var(--accent-ink);background:oklch(94% .04 260)}.tax-pill.t8{color:var(--ok);background:oklch(95% .04 155)}.confirm-cell .cell{justify-content:center}.toggle-switch{cursor:pointer;flex-shrink:0;width:36px;height:20px;display:inline-block;position:relative}.toggle-switch input{opacity:0;width:0;height:0;position:absolute}.toggle-track{background:var(--border-strong);transition:background .2s var(--ease);border-radius:20px;position:absolute;inset:0}.toggle-track:before{content:"";width:14px;height:14px;transition:transform .2s var(--ease);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}.toggle-switch input:checked~.toggle-track{background:var(--ok)}.toggle-switch input:checked~.toggle-track:before{transform:translate(16px)}.toggle-switch:hover .toggle-track{opacity:.85}.toast-container{z-index:9999;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:24px;right:24px}.toast{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);font-size:12px;font-family:var(--font-mono);color:var(--ink);animation:toast-in .2s var(--ease);white-space:nowrap;align-items:center;gap:8px;padding:10px 16px;display:flex;box-shadow:0 4px 12px #0000001f}.toast.ok{border-left:3px solid var(--ok)}.toast.error{border-left:3px solid var(--danger)}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.drawer{border-top:1px solid var(--border);background:var(--bg-panel);grid-template-columns:1fr 1fr 280px;gap:20px;height:180px;padding:12px 16px;display:grid;overflow:auto}.drawer h4{font-size:10px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);margin:0 0 6px;font-weight:500}.drawer .kv{grid-template-columns:80px 1fr;gap:4px 10px;font-size:12px;display:grid}.drawer .kv dt{color:var(--ink-faint)}.drawer .kv dd{font-family:var(--font-mono);margin:0}.drawer .raw{font-family:var(--font-mono);color:var(--ink-soft);background:var(--bg-subtle);border-radius:var(--radius-sm);white-space:pre-wrap;word-break:break-all;max-height:140px;padding:8px 10px;font-size:10px;overflow:auto}.export-screen{grid-template-columns:260px 1fr;height:100%;display:grid}.export-side{background:var(--bg-panel);border-right:1px solid var(--border);padding:20px;overflow:auto}.export-side h3{font-size:11px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);margin:0 0 12px;font-weight:500}.software-list{flex-direction:column;gap:6px;margin-bottom:24px;display:flex}.software-list button{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);text-align:left;cursor:pointer;justify-content:space-between;align-items:center;padding:11px 14px;font-size:13px;transition:border-color .12s,background .12s;display:flex}.software-list button:hover{border-color:var(--border-strong);background:var(--bg-subtle)}.software-list button.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink);font-weight:500}.export-main{flex-direction:column;gap:16px;padding:20px;display:flex;overflow:auto}.csv-preview{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);flex:1;overflow:hidden}.csv-preview .hdr{background:var(--bg-subtle);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 14px;font-size:13px;display:flex}.csv-preview .hdr .fname{font-family:var(--font-mono);color:var(--ink);font-size:11px}.csv-preview pre{font-family:var(--font-mono);color:var(--ink);max-height:calc(100vh - 350px);margin:0;padding:14px;font-size:11px;line-height:1.7;overflow:auto}.btn{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-panel);color:var(--ink);cursor:pointer;white-space:nowrap;transition:background .12s var(--ease), border-color .12s var(--ease), box-shadow .12s var(--ease), transform .1s var(--ease);align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:500;display:inline-flex}.btn:hover{background:var(--bg-subtle)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn.primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}.btn.primary:hover{background:oklch(30% .01 85)}.btn.accent{color:#fff;background:linear-gradient(135deg,#1e40af 0%,#2563eb 100%);border-color:#2563eb;box-shadow:0 2px 8px #2563eb4d}.btn.accent:hover{background:linear-gradient(135deg,#1d3fa8 0%,#1d4ed8 100%);box-shadow:0 4px 14px #2563eb73}.btn.ghost{color:var(--ink-soft);background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--bg-subtle);color:var(--ink)}.btn.sm{padding:5px 10px;font-size:12px}.btn .kbd{font-family:var(--font-mono);background:oklch(100% 0 0/.15);border-radius:2px;margin-left:4px;padding:1px 4px;font-size:10px}.btn:not(.primary):not(.accent) .kbd{background:var(--bg-subtle);color:var(--ink-faint)}.kbd-hint{font-family:var(--font-mono);color:var(--ink-faint);font-size:10px}.kbd-hint kbd{background:var(--bg-subtle);border:1px solid var(--border);border-radius:2px;margin:0 2px;padding:1px 4px}@keyframes pageEnter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes stepForward{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:translate(0)}}@keyframes stepBack{0%{opacity:0;transform:translate(-18px)}to{opacity:1;transform:translate(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}.page-enter{animation:pageEnter .22s var(--ease) both}.fade-in{animation:stepForward .24s var(--ease) both}.fade-in.back{animation:stepBack .24s var(--ease) both}.spin{animation:1s linear infinite spin}.proto-badge{font-weight:700;background:var(--warn-soft)!important;color:var(--warn-ink)!important;border:1px solid var(--warn)!important;font-size:11px!important}@supports (padding-top:env(safe-area-inset-top)){.app-shell{padding-left:env(safe-area-inset-left)}}@media (width<=900px){:root{--sidebar-w:56px}.sidebar-brand .brand-text,.sidebar-cta span,.sidebar-item span,.sidebar-section{display:none}.sidebar-item,.sidebar-cta,.sidebar-footer .sidebar-item{justify-content:center;padding:10px}}@media (width<=768px){.upload-screen{grid-template-rows:auto 1fr;grid-template-columns:1fr;overflow-y:auto}.dropzone{border-right:none;border-bottom:1px solid var(--border);min-height:220px;padding:24px 16px}.dropzone .frame{padding:28px 20px}.dropzone h2{font-size:16px}.upload-side{padding:16px}.workbench{grid-template-rows:260px 1fr;grid-template-columns:1fr}.viewer{border-right:none;border-bottom:1px solid var(--border)}.drawer{grid-template-columns:1fr;height:auto;max-height:200px;overflow-y:auto}.export-screen{grid-template-rows:auto 1fr;grid-template-columns:1fr;overflow-y:auto}.export-side{border-right:none;border-bottom:1px solid var(--border)}table.grid{min-width:600px;font-size:12px}.stepper{grid-template-columns:repeat(4,1fr)}.step{gap:6px;padding:0 8px}.step .lbl .ja{font-size:11px}.step .lbl .en,.step .meta{display:none}.btn{padding:7px 11px;font-size:12px}}
