.page[data-v-6fd17190]{width:min(920px,calc(100% - 2rem));margin:0 auto;padding:1.75rem 0 3rem;animation:rise-6fd17190 .7s ease both}@keyframes rise-6fd17190{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.top[data-v-6fd17190]{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:2.5rem}.brand[data-v-6fd17190]{display:flex;align-items:center;gap:.75rem}.mark[data-v-6fd17190]{width:2.25rem;height:2.25rem;border-radius:.7rem;background:linear-gradient(145deg,var(--accent) 0%,var(--accent-deep) 100%);box-shadow:0 8px 18px #0d7a6f47;position:relative}.mark[data-v-6fd17190]:after{content:"";position:absolute;inset:7px 6px auto;height:3px;background:#fffcf7d9;border-radius:2px}.brand-name[data-v-6fd17190]{margin:0;font-family:var(--font-display);font-size:1.15rem;font-weight:600;letter-spacing:-.02em;line-height:1.1}.brand-sub[data-v-6fd17190]{margin:.15rem 0 0;font-size:.78rem;color:var(--mute);letter-spacing:.08em}.top-note[data-v-6fd17190]{margin:0;color:var(--ink-soft);font-size:.9rem}.top-right[data-v-6fd17190]{display:flex;align-items:center;gap:.5rem}.user-chip[data-v-6fd17190]{font-size:.88rem;font-weight:600;color:var(--accent-deep);background:var(--accent-soft);padding:.35rem .7rem;border-radius:999px}.auth-loading[data-v-6fd17190]{margin-top:4rem;text-align:center;color:var(--mute)}.login-panel[data-v-6fd17190]{margin:4rem auto 0;max-width:420px;width:100%}.login-panel h1[data-v-6fd17190]{margin:0;font-family:var(--font-display);font-size:clamp(1.8rem,4vw,2.4rem);font-weight:600;letter-spacing:-.03em;text-align:center}.login-form[data-v-6fd17190]{margin-top:1.5rem;display:grid;gap:1rem}.login-form label[data-v-6fd17190]{display:grid;gap:.4rem}.login-form label span[data-v-6fd17190]{font-size:.88rem;font-weight:600;color:var(--ink-soft)}.login-form input[data-v-6fd17190]{width:100%;border:1px solid var(--line);border-radius:12px;padding:.75rem .9rem;background:var(--surface);color:var(--ink);outline:none;transition:border-color .2s ease,box-shadow .2s ease}.login-form input[data-v-6fd17190]:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0d7a6f26}.login-btn[data-v-6fd17190]{width:100%;margin-top:.25rem}.login-btn[data-v-6fd17190]:disabled{opacity:.7;cursor:wait;transform:none}.hero[data-v-6fd17190]{margin-bottom:1.25rem}.hero h1[data-v-6fd17190]{margin:0;font-family:var(--font-display);font-size:clamp(2rem,5vw,2.85rem);font-weight:600;letter-spacing:-.03em;line-height:1.1}.lead[data-v-6fd17190]{margin:.75rem 0 0;max-width:36rem;color:var(--ink-soft);font-size:1.02rem;line-height:1.55}.lead code[data-v-6fd17190]{font-size:.92em;padding:.1em .35em;border-radius:.35em;background:var(--paper-2);color:var(--accent-deep)}.drop[data-v-6fd17190]{position:relative;min-height:280px;border:1.5px dashed var(--line);border-radius:calc(var(--radius) + 4px);background:linear-gradient(180deg,#fffcf7eb,#fffcf7bf),repeating-linear-gradient(-12deg,transparent,transparent 10px,rgba(213,207,195,.18) 10px,rgba(213,207,195,.18) 11px);box-shadow:var(--shadow);display:grid;place-items:center;cursor:pointer;overflow:hidden;transition:border-color .25s ease,transform .25s ease,background-color .25s ease,box-shadow .25s ease}.drop[data-v-6fd17190]:hover{border-color:#b9cfc8;transform:translateY(-1px)}.drop.dragging[data-v-6fd17190]{border-color:var(--accent);border-style:solid;background:var(--accent-soft);transform:scale(1.01)}.drop.updating[data-v-6fd17190]{border-color:var(--accent);border-style:solid;background:linear-gradient(180deg,#f3faf7,#e7f5f1);box-shadow:0 0 0 4px #0d7a6f1f,var(--shadow)}.drop.busy[data-v-6fd17190]{cursor:wait;pointer-events:none}.drop.done[data-v-6fd17190]{cursor:default;border-style:solid;border-color:#b7d8d1;background:linear-gradient(180deg,#fff,#f3faf7)}.drop-idle[data-v-6fd17190],.drop-busy[data-v-6fd17190],.drop-done[data-v-6fd17190]{width:min(100%,520px);padding:2rem 1.5rem;text-align:center;animation:fade-in-6fd17190 .35s ease both}@keyframes fade-in-6fd17190{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.parcel[data-v-6fd17190]{width:72px;height:64px;margin:0 auto 1.1rem;position:relative}.parcel-body[data-v-6fd17190]{position:absolute;left:8px;right:8px;bottom:0;height:42px;border-radius:6px 6px 8px 8px;background:linear-gradient(180deg,#c9b89a,#b6a484);box-shadow:0 6px 12px #1a23321f}.parcel-lid[data-v-6fd17190]{position:absolute;left:2px;right:2px;top:8px;height:18px;border-radius:5px;background:linear-gradient(180deg,#d8c8aa,#c5b291);transform-origin:50% 100%;transition:transform .35s ease}.drop:hover .parcel-lid[data-v-6fd17190],.drop.dragging .parcel-lid[data-v-6fd17190],.drop.updating .parcel-lid[data-v-6fd17190]{transform:rotateX(28deg) translateY(-4px)}.parcel-tape[data-v-6fd17190]{position:absolute;left:50%;top:14px;bottom:6px;width:10px;transform:translate(-50%);background:#0d7a6f8c;border-radius:2px}.drop-title[data-v-6fd17190]{margin:0;font-size:1.15rem;font-weight:600;letter-spacing:-.01em}.drop-hint[data-v-6fd17190]{margin:.45rem 0 0;color:var(--mute);font-size:.9rem}.cancel-update[data-v-6fd17190]{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin-top:1rem;border:1px solid var(--line);border-radius:10px;background:#fffcf7e6;color:var(--ink-soft);font-size:.88rem;font-weight:600;padding:.55rem .95rem;cursor:pointer}.cancel-update[data-v-6fd17190]:hover{border-color:#b9cfc8;color:var(--ink)}.ring[data-v-6fd17190]{--p: 0;width:84px;height:84px;margin:0 auto 1rem;border-radius:50%;display:grid;place-items:center;background:radial-gradient(closest-side,var(--surface) 78%,transparent 80% 100%),conic-gradient(var(--accent) calc(var(--p) * 1%),var(--paper-2) 0);font-weight:600;color:var(--accent-deep)}.ok-label[data-v-6fd17190]{margin:0;display:inline-block;padding:.2rem .55rem;border-radius:999px;background:var(--accent-soft);color:var(--accent-deep);font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.ok-name[data-v-6fd17190]{margin:.7rem 0 0;font-family:var(--font-display);font-size:1.65rem;font-weight:600;letter-spacing:-.02em}.link-row[data-v-6fd17190]{margin-top:1rem;display:flex;gap:.5rem;align-items:stretch;justify-content:center;flex-wrap:wrap}.link[data-v-6fd17190]{flex:1 1 220px;max-width:100%;padding:.7rem .9rem;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--accent-deep);text-decoration:none;font-size:.88rem;word-break:break-all;text-align:left}.ok-actions[data-v-6fd17190]{margin-top:1rem;display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap}.btn[data-v-6fd17190]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;border-radius:12px;padding:.7rem 1.1rem;font-weight:600;cursor:pointer;text-decoration:none;transition:background .2s ease,border-color .2s ease,transform .2s ease}.btn[data-v-6fd17190]:hover{transform:translateY(-1px)}.btn.primary[data-v-6fd17190]{background:var(--accent);color:#fff}.btn.primary[data-v-6fd17190]:hover{background:var(--accent-deep)}.btn.ghost[data-v-6fd17190]{background:transparent;border-color:var(--line);color:var(--ink)}.btn.ghost[data-v-6fd17190]:hover{border-color:#b9cfc8;background:#ffffffb3}.progress-bar[data-v-6fd17190]{position:absolute;left:0;right:0;bottom:0;height:4px;background:#d5cfc38c}.progress-bar i[data-v-6fd17190]{display:block;height:100%;background:linear-gradient(90deg,var(--accent),#1aa896);transition:width .2s ease}.error[data-v-6fd17190]{margin:.9rem 0 0;padding:.75rem 1rem;border-radius:12px;background:#fef2f1;color:var(--danger);border:1px solid #f0c7c2;font-size:.92rem}.shelf[data-v-6fd17190]{margin-top:2.4rem}.shelf-head[data-v-6fd17190]{display:flex;align-items:baseline;gap:.55rem;margin-bottom:.9rem}.shelf-head h3[data-v-6fd17190]{margin:0;font-family:var(--font-display);font-size:1.25rem;font-weight:600}.count[data-v-6fd17190]{min-width:1.4rem;height:1.4rem;padding:0 .4rem;border-radius:999px;display:inline-grid;place-items:center;background:var(--paper-2);color:var(--ink-soft);font-size:.78rem;font-weight:600}.empty[data-v-6fd17190]{margin:0;color:var(--mute);font-size:.95rem}.list[data-v-6fd17190]{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.row[data-v-6fd17190]{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.95rem .15rem;border-bottom:1px solid var(--line);animation:fade-in-6fd17190 .4s ease both}.row-name[data-v-6fd17190]{margin:0;font-weight:600}.row-meta[data-v-6fd17190]{margin:.25rem 0 0;color:var(--mute);font-size:.82rem}.row-meta code[data-v-6fd17190]{font-size:.8em}.row-actions[data-v-6fd17190]{display:flex;gap:.35rem;flex-shrink:0}.text-btn[data-v-6fd17190]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:var(--accent-deep);font-size:.88rem;font-weight:600;padding:.35rem .5rem;border-radius:8px;cursor:pointer;text-decoration:none}.text-btn[data-v-6fd17190]:hover{background:var(--accent-soft)}.text-btn.danger[data-v-6fd17190]{color:var(--danger)}.text-btn.danger[data-v-6fd17190]:hover{background:#fef2f1}.sr-only[data-v-6fd17190]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:640px){.top[data-v-6fd17190],.row[data-v-6fd17190]{flex-direction:column;align-items:flex-start}.drop[data-v-6fd17190]{min-height:240px}}:root{--ink: #1a2332;--ink-soft: #4a5568;--mute: #8b95a5;--paper: #f3f0ea;--paper-2: #e8e3d9;--surface: #fffcf7;--line: #d5cfc3;--accent: #0d7a6f;--accent-deep: #065f56;--accent-soft: #d8efe9;--warn: #b45309;--danger: #b42318;--ok: #0d7a6f;--shadow: 0 18px 40px rgba(26, 35, 50, .08);--radius: 18px;--font-display: "Fraunces", Georgia, serif;--font-body: "DM Sans", system-ui, sans-serif}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;min-height:100%}body{font-family:var(--font-body);color:var(--ink);background:radial-gradient(1200px 600px at 10% -10%,#dff3ee 0%,transparent 55%),radial-gradient(900px 500px at 100% 0%,#f0e6d4 0%,transparent 50%),linear-gradient(180deg,#f7f4ee 0%,var(--paper) 40%,#ebe6dc 100%);background-attachment:fixed}button,input{font:inherit}a{color:inherit}#app{min-height:100vh}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
