:root{--ink: #171512;--ink-2: #29241d;--paper: #f7edd8;--paper-2: #fff8ea;--line: #312b22;--line-soft: rgba(49, 43, 34, .22);--acid: #d8ff3f;--mint: #49d7bd;--signal: #ff5a36;--sky: #8dd7ff;--muted: #6e6559;--shadow: 10px 10px 0 #171512;--radius: 8px;color:var(--ink);background:var(--paper);font-family:Inter,Hiragino Kaku Gothic ProN,Noto Sans JP,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#root{min-height:100%}html{scroll-behavior:smooth}body{margin:0;min-width:320px;background-color:var(--paper);background-image:linear-gradient(rgba(23,21,18,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(23,21,18,.06) 1px,transparent 1px),linear-gradient(135deg,#f7edd8,#efe2c3 48%,#f8f1df);background-position:-1px -1px,-1px -1px,0 0;background-size:28px 28px,28px 28px,auto}button,input,select,textarea{font:inherit}button{-webkit-tap-highlight-color:transparent}a{color:inherit}.app-shell{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:24px 0 56px}.workspace{display:grid;grid-template-columns:112px minmax(0,1fr);gap:22px;align-items:start;min-width:0}.workflow-label{position:sticky;top:16px;display:grid;gap:12px;min-width:0;color:var(--paper-2);font-size:.74rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.workflow-label a{display:grid;place-items:center;min-width:0;min-height:84px;border:2px solid var(--line);background:var(--ink);color:var(--paper-2);text-decoration:none;writing-mode:vertical-rl;transform:rotate(180deg);transition:background .15s ease,color .15s ease,transform .15s ease}.workflow-label a:hover,.workflow-label a:focus-visible{background:var(--acid);color:var(--ink);outline:none}.workflow-label a:active{transform:rotate(180deg) translateY(2px)}.workflow-stack{display:grid;gap:18px;min-width:0}.card{border:2px solid var(--line);border-radius:var(--radius);background:var(--paper-2);box-shadow:var(--shadow);min-width:0;scroll-margin-top:16px}.input-panel{position:relative;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(250px,.8fr);gap:18px;padding:18px}.input-panel .panel-heading{grid-column:1 / -1}.panel-heading{display:flex;gap:14px;align-items:flex-start;min-width:0}.panel-heading>div{min-width:0}.panel-heading h2{margin:0;font-size:1.28rem;line-height:1.35}.step-badge{display:inline-grid;place-items:center;width:46px;min-width:46px;height:38px;border:2px solid var(--line);background:var(--acid);color:var(--ink);font-size:.84rem;font-weight:950;box-shadow:3px 3px 0 var(--line)}.hint{margin:6px 0 0;color:var(--muted);font-size:.9rem;font-weight:650;line-height:1.75}.shift-textarea{width:100%;min-width:0;min-height:256px;resize:vertical;padding:18px;border:2px solid var(--line);border-radius:0;outline:none;background:#151410;color:#f8f2df;caret-color:var(--acid);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.95rem;line-height:1.75;box-shadow:inset 0 0 0 1px #f7edd814}.shift-textarea::placeholder{color:#f8f2df75}.shift-textarea:focus{border-color:var(--signal);box-shadow:0 0 0 4px #ff5a3633,inset 0 0 0 1px #f7edd81a}.options{align-self:stretch;display:grid;gap:12px;min-width:0;padding:14px;border:2px solid var(--line);background:linear-gradient(90deg,rgba(73,215,189,.28) 0 12px,transparent 12px),#f1e4c8}.field{display:grid;gap:6px;min-width:0}.field span{color:var(--ink);font-size:.78rem;font-weight:900}.field select,.field input{width:100%;min-height:46px;padding:10px 12px;border:2px solid var(--line);border-radius:0;outline:none;background:var(--paper-2);color:var(--ink);font-weight:750}.field select:focus,.field input:focus{border-color:var(--signal);box-shadow:0 0 0 4px #ff5a362e}.preview-panel,.export-panel{padding:18px}.table-wrap{margin-top:16px;overflow-x:auto;max-width:100%;min-width:0;border:2px solid var(--line);background:#fffdf4}.preview-table{width:100%;border-collapse:collapse;min-width:520px;font-size:.93rem}.preview-table thead{background:var(--ink);color:var(--paper-2)}.preview-table th,.preview-table td{padding:13px 14px;border-bottom:1px solid var(--line-soft);text-align:left;white-space:nowrap}.preview-table th{font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.preview-table td{color:var(--ink-2);font-weight:750;font-variant-numeric:tabular-nums}.preview-table tbody tr:nth-child(2n){background:#49d7bd21}.preview-table tbody tr:hover{background:#d8ff3f61}.empty-preview{display:grid;grid-template-columns:1fr auto;align-items:center;gap:16px;margin-top:16px;min-height:96px;padding:18px;border:2px dashed var(--line);background:repeating-linear-gradient(-45deg,rgba(23,21,18,.06) 0 1px,transparent 1px 10px),#f1e4c8}.empty-preview span{font-size:.78rem;font-weight:950;letter-spacing:.14em;text-transform:uppercase}.empty-preview strong{color:var(--signal);font-size:2.4rem;line-height:1;font-variant-numeric:tabular-nums}.badge{display:inline-grid;place-items:center;margin-left:8px;padding:1px 7px 2px;border:1px solid var(--line);background:var(--signal);color:var(--paper-2);font-size:.68rem;font-weight:900}.warnings{margin-top:16px;padding:14px;border:2px solid var(--line);background:#ffe0bd;color:#4a2113}.warnings strong{display:block;margin-bottom:8px;font-size:.9rem}.warnings ul{margin:0;padding-left:18px}.warnings li{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.82rem;line-height:1.7}.download-btn{position:relative;display:flex;align-items:center;justify-content:space-between;width:100%;min-height:64px;margin-top:18px;padding:0 18px;border:2px solid var(--line);border-radius:0;background:var(--signal);color:var(--paper-2);cursor:pointer;box-shadow:5px 5px 0 var(--line);font-size:1rem;font-weight:950;letter-spacing:.04em;text-transform:uppercase}.download-btn:after{content:"CSV";display:inline-grid;place-items:center;width:54px;height:34px;border:2px solid rgba(255,248,234,.88);color:var(--acid);font-size:.76rem}.download-btn:hover:not(:disabled){transform:translate(-2px,-2px);box-shadow:7px 7px 0 var(--line)}.download-btn:active:not(:disabled){transform:translate(2px,2px);box-shadow:3px 3px 0 var(--line)}.download-btn:disabled{background:#b9ad97;color:#fff8eab8;cursor:not-allowed;box-shadow:none}.howto{display:grid;gap:9px;margin:18px 0 0;padding:16px 16px 16px 38px;border-left:8px solid var(--mint);background:#f1e4c8;color:var(--ink-2);font-size:.9rem;font-weight:650;line-height:1.65}.howto li::marker{color:var(--signal);font-weight:950}.howto a{color:var(--ink);font-weight:950;text-decoration-color:var(--signal);text-decoration-thickness:2px;text-underline-offset:3px}.note{margin:12px 0 0;color:var(--muted);font-size:.8rem;font-weight:700}.footer{display:flex;justify-content:space-between;gap:16px;margin-top:34px;padding:12px 0 0;border-top:2px solid var(--line);color:var(--muted);font-size:.78rem;font-weight:850}@media(max-width:860px){.input-panel,.workspace{grid-template-columns:1fr}.workflow-label{position:static;grid-template-columns:repeat(3,minmax(0,1fr))}.workflow-label a{min-height:38px;writing-mode:initial;transform:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workflow-label a:active{transform:translateY(2px)}}@media(max-width:560px){.app-shell{width:min(100% - 20px,1180px);padding-top:10px}.footer{flex-direction:column;align-items:flex-start}.card{box-shadow:6px 6px 0 var(--line)}.panel-heading{gap:10px}.step-badge{width:42px;min-width:42px}.input-panel,.preview-panel,.export-panel{padding:14px}.shift-textarea{min-height:220px;padding:14px;font-size:.88rem}}
