:root{--ink: #20241f;--ink-soft: #4b5147;--paper: #f1efe6;--panel: #ffffff;--panel-edge: #e4ddc8;--rule: #d9d2b9;--accent: #0d6e5c;--accent-hover: #0a5548;--accent-soft: #0d6e5c14;--warn: #a63b12;--warn-soft: #a63b1212;--radius: 8px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--paper);color:var(--ink);font-family:Hiragino Sans,Hiragino Kaku Gothic ProN,Yu Gothic UI,Noto Sans JP,Segoe UI,sans-serif;line-height:1.7;-webkit-font-smoothing:antialiased}.mono{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app-header{border-bottom:1px solid var(--rule);background:var(--panel)}.app-header .inner{max-width:640px;margin:0 auto;padding:18px 24px;display:flex;align-items:baseline;justify-content:space-between;gap:12px}.app-header .wordmark{font-size:17px;font-weight:800;letter-spacing:-.01em;color:var(--ink)}.app-header .wordmark .mark{color:var(--accent)}.app-header nav a{font-size:13.5px;color:var(--ink-soft);font-weight:600}.app-main{max-width:640px;margin:0 auto;padding:40px 24px 80px}.app-footer{max-width:640px;margin:0 auto;padding:0 24px 40px;font-size:12.5px;color:var(--ink-soft)}.card{background:var(--panel);border:1px solid var(--panel-edge);border-radius:var(--radius);padding:28px}.card+.card{margin-top:16px}h1.page-title{font-size:22px;font-weight:800;margin:0 0 6px;letter-spacing:-.01em}.page-lede{color:var(--ink-soft);font-size:14.5px;margin:0 0 24px;max-width:52ch}.field{margin-bottom:18px}.field:last-child{margin-bottom:0}.field label{display:block;font-size:13px;font-weight:700;color:var(--ink-soft);margin-bottom:6px}.field .hint{font-size:12.5px;color:var(--ink-soft);margin-top:4px}input[type=password],input[type=text],select,textarea{width:100%;border:1px solid var(--rule);border-radius:6px;padding:9px 12px;font-size:14.5px;font-family:inherit;color:var(--ink);background:var(--panel)}textarea{resize:vertical;min-height:64px}input:focus,select:focus,textarea:focus{border-color:var(--accent)}.dropzone{border:2px dashed var(--rule);border-radius:var(--radius);padding:32px 20px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s;position:relative}.dropzone:hover,.dropzone.dragover{border-color:var(--accent);background:var(--accent-soft)}.dropzone input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.dropzone .icon{font-size:28px;margin-bottom:8px}.dropzone .label{font-weight:700;font-size:14.5px}.dropzone .sub{font-size:12.5px;color:var(--ink-soft);margin-top:4px}.file-list{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.file-row{display:flex;align-items:center;gap:10px;border:1px solid var(--rule);border-radius:6px;padding:10px 12px;font-size:13.5px}.file-row .name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-row .size{color:var(--ink-soft);font-size:12.5px;flex:none}.file-row .progress-track{flex:none;width:72px;height:6px;border-radius:3px;background:var(--rule);overflow:hidden}.file-row .progress-fill{height:100%;background:var(--accent);transition:width .2s}.file-row .pct{flex:none;width:36px;text-align:right;font-size:12px;color:var(--ink-soft);font-variant-numeric:tabular-nums}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:none;border-radius:6px;padding:10px 18px;font-size:14.5px;font-weight:700;cursor:pointer;font-family:inherit;transition:background .15s}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-primary:disabled{background:var(--rule);color:var(--ink-soft);cursor:not-allowed}.btn-secondary{background:transparent;border:1px solid var(--rule);color:var(--ink)}.btn-secondary:hover{border-color:var(--accent);color:var(--accent)}.btn-block{width:100%}.btn-row{display:flex;gap:10px;margin-top:22px}.alert{border-radius:6px;padding:12px 14px;font-size:13.5px;margin-top:16px}.alert-error{background:var(--warn-soft);border:1px solid var(--warn);color:var(--warn)}.alert-info{background:var(--accent-soft);border:1px solid var(--accent);color:var(--accent-hover)}.copy-field{display:flex;align-items:stretch;gap:8px}.copy-field .value{flex:1;min-width:0;border:1px solid var(--rule);border-radius:6px;padding:9px 12px;font-size:13.5px;background:var(--paper);overflow-x:auto;white-space:nowrap}.copy-field button{flex:none}.stub{border:1px dashed var(--rule);border-radius:var(--radius);padding:16px 18px;margin-top:14px}.stub .k{font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);font-weight:700;margin-bottom:8px}.checking{text-align:center;color:var(--ink-soft);padding:40px 0;font-size:14.5px}
