:root{--ink: #0b1f2a;--teal: #0d7377;--teal-deep: #095456;--foam: #e8f4f3;--sand: #f3f0e8;--muted: #5a6b73;--line: rgba(11, 31, 42, .12);--danger: #b42318;--ok: #0f6b4c;--radius: 4px}*{box-sizing:border-box}body{margin:0;min-height:100vh;color:var(--ink);font-family:Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif;background:radial-gradient(900px 420px at 100% 0%,rgba(13,115,119,.12),transparent 55%),var(--sand);line-height:1.55}button,input,select,textarea{font:inherit}a{color:var(--teal-deep)}.app-shell{max-width:960px;margin:0 auto;padding:28px 20px 64px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:28px}.brand{font-family:DM Sans,Noto Sans SC,sans-serif;font-weight:700;letter-spacing:.04em;text-decoration:none;color:var(--ink)}.brand small{display:block;font-weight:500;letter-spacing:.18em;font-size:11px;color:var(--muted);margin-top:2px}.muted{color:var(--muted);font-size:14px}.card{background:#ffffffb8;border:1px solid var(--line);border-radius:var(--radius);padding:28px}.login-wrap{min-height:calc(100vh - 80px);display:flex;align-items:center;justify-content:center}.login-card{width:min(420px,100%)}.login-card h1{font-family:DM Sans,Noto Sans SC,sans-serif;font-size:28px;margin:0 0 8px;letter-spacing:-.02em}.form-row{margin-bottom:16px}.form-row label{display:block;font-size:13px;margin-bottom:6px;color:var(--muted)}.form-row input,.form-row select,.form-row textarea{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;color:var(--ink)}.form-row input:focus,.form-row select:focus,.form-row textarea:focus{outline:2px solid rgba(13,115,119,.35);border-color:var(--teal)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 18px;border:none;border-radius:var(--radius);cursor:pointer;font-weight:600;background:var(--teal);color:#fff}.btn:hover:not(:disabled){background:var(--teal-deep)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}.btn.block{width:100%}.error{color:var(--danger);font-size:13px;margin:0 0 12px}.ok{color:var(--ok);font-size:13px}.product-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.chip{border:1px solid var(--line);background:#fff;padding:8px 12px;border-radius:999px;cursor:pointer;font-size:13px}.chip.active{border-color:var(--teal);background:var(--foam);color:var(--teal-deep);font-weight:600}.meta{display:flex;flex-wrap:wrap;gap:12px 20px;font-size:13px;color:var(--muted);margin-bottom:20px}.meta strong{color:var(--ink);font-weight:600}.grid-2{display:grid;gap:16px}@media(min-width:800px){.grid-2{grid-template-columns:1fr 1fr}}.file-box{border:1px dashed var(--line);border-radius:var(--radius);padding:16px;background:#fff}.file-box input{width:100%}.preview{margin-top:12px;max-width:160px;max-height:160px;object-fit:cover;border-radius:var(--radius);border:1px solid var(--line)}.result-box{margin:0;padding:14px;background:#0b1f2a;color:#d7eceb;border-radius:var(--radius);font-family:DM Sans,ui-monospace,monospace;font-size:12px;white-space:pre-wrap;word-break:break-word;min-height:180px;max-height:420px;overflow:auto}.empty{padding:32px;text-align:center;color:var(--muted)}.footer-note{margin-top:28px;text-align:center;font-size:12px;color:var(--muted)}.footer-note a{color:var(--teal-deep);text-decoration:none}
