:root{--color-bg:#faf6ec;--color-surface:#f0e9da;--color-text:#1b1f1a;--color-text-muted:#4a5147;--color-divider:#c8bfa9;--color-accent:#2f6b3a;--color-accent-2:#a8412a;--color-neutral-100:#f7f2e7;--color-neutral-200:#ebe4d5;--color-neutral-300:#d7cfbe;--color-neutral-400:#b8b0a0;--color-neutral-500:#999183;--color-neutral-600:#7a7367;--color-neutral-700:#5c564c;--color-neutral-800:#3f3a33;--color-neutral-900:#24211c;--color-accent-100:#eef4ee;--color-accent-200:#d3e3d6;--color-accent-300:#a5c5ab;--color-accent-400:#639970;--color-accent-500:#2f6b3a;--color-accent-600:#265830;--color-accent-700:#1d4426;--color-accent-800:#14311b;--color-accent-900:#0c1e11;--color-accent-2-100:#f9efec;--color-accent-2-200:#f0d7d0;--color-accent-2-300:#dfb0a3;--color-accent-2-400:#c67a63;--color-accent-2-500:#a8412a;--color-accent-2-600:#8b3522;--color-accent-2-700:#6d291a;--color-accent-2-800:#4f1d13;--color-accent-2-900:#32120b;--color-danger-100:#f9eceb;--color-danger-500:#a01f1c;--color-danger-700:#6b1512;--color-on-accent:#fff;--font-heading:ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-heading-weight:800;--font-body:ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--radius-sm:0px;--radius-md:0px;--radius-lg:0px;--shadow-sm:0 1px 2px #1b1f1a24;--shadow-md:0 3px 10px #1b1f1a29;--shadow-lg:0 12px 32px #1b1f1a38}*,:before,:after{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);margin:0;font-size:17px;font-weight:400;line-height:1.55}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:var(--font-heading-weight);letter-spacing:-.015em;margin:0 0 var(--space-2);line-height:1.12}h1{font-size:42px}h2{font-size:32px}h3{font-size:25px}h4{font-size:20px}h5{font-size:16px}h6{letter-spacing:.08em;text-transform:uppercase;font-size:13px}p{margin:0 0 var(--space-3)}a{color:var(--color-accent);text-underline-offset:3px}img{max-width:100%;display:block}figure{margin:0}figcaption{margin-top:var(--space-1);color:var(--color-text-muted);font-size:12px}.text-muted{color:var(--color-text-muted)}:focus{outline:none}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}::selection{background:var(--color-accent-200)}.hr{height:2px;margin:var(--space-4) 0;background:var(--color-divider);border:0}.btn{cursor:pointer;font-family:var(--font-heading);font-weight:var(--font-heading-weight);color:var(--color-text);padding:var(--space-2) calc(var(--space-3) * 1.2);border-radius:var(--radius-md);background:0 0;border:2px solid #0000;justify-content:flex-start;align-items:center;gap:6px;min-height:44px;font-size:15px;line-height:1.2;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--color-accent);color:var(--color-bg)}.btn-primary:hover{background:var(--color-accent-600)}.btn-primary:active{background:var(--color-accent-700)}.btn-secondary{border-color:var(--color-divider)}.btn-secondary:hover{background:var(--color-neutral-100)}.btn-secondary:active{background:var(--color-neutral-200)}.btn-ghost{color:var(--color-accent);padding-inline:var(--space-1)}.btn-ghost:hover{background:var(--color-accent-100)}.btn-block{width:100%;margin-top:var(--space-2);text-align:left;justify-content:flex-start}.field>label{color:var(--color-text-muted);margin-bottom:5px;font-size:13px;display:block}.input{width:100%;min-height:48px;font:inherit;color:var(--color-text);caret-color:var(--color-accent);background:var(--color-bg);border:2px solid var(--color-divider);border-radius:var(--radius-md);padding:8px 12px;font-size:17px}.input:hover{border-color:var(--color-neutral-500)}.input:focus-visible{border-color:var(--color-accent);outline-offset:0}textarea.input{resize:vertical;min-height:90px}.card{gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-surface);flex-direction:column;display:flex}.card-kicker{letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent);font-size:11px}.card-title{font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:18px;line-height:1.2}.card-body{opacity:.85;flex:1;margin:0;font-size:15px}.card-meta{color:var(--color-text-muted);align-items:center;gap:6px;font-size:12px;display:flex}.elev-sm{box-shadow:var(--shadow-sm)}.elev-md{box-shadow:var(--shadow-md)}.elev-lg{box-shadow:var(--shadow-lg)}.tag{letter-spacing:.02em;border-radius:calc(var(--radius-md) * .75);white-space:nowrap;align-items:center;padding:3px 10px;font-size:12px;display:inline-flex}.tag-accent{background:var(--color-accent-500);color:var(--color-on-accent)}.tag-accent-2{background:var(--color-accent-2-500);color:var(--color-on-accent)}.tag-neutral{background:var(--color-neutral-200);color:var(--color-neutral-800)}.tag-danger{background:var(--color-danger-500);color:var(--color-on-accent)}.nav{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-bottom:2px solid var(--color-divider);display:flex}.nav-brand{font-family:var(--font-heading);font-weight:var(--font-heading-weight);margin-right:auto;font-size:18px}.nav a{color:inherit;font-size:15px;text-decoration:none}.nav a:hover,.nav a[aria-current=page]{color:var(--color-accent)}.table{border-collapse:collapse;width:100%;font-size:15px}.table th{text-align:left;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);padding:var(--space-2);border-bottom:2px solid var(--color-divider);font-size:12px}.table td{padding:var(--space-2);border-bottom:1px solid var(--color-divider)}.table tbody tr:hover{background:var(--color-neutral-100)}.dialog-backdrop{padding:var(--space-4);background:#24211c80;place-items:center;display:grid;position:fixed;inset:0}.dialog{gap:var(--space-3);width:min(440px,100%);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-lg);flex-direction:column;display:flex}.dialog-title{font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:20px}.dialog-body{opacity:.9;font-size:15px}.dialog-actions{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2);display:flex}.coord{font-variant-numeric:tabular-nums;letter-spacing:.02em;color:var(--color-text-muted);font-size:14px}.place{font-family:var(--font-heading);font-weight:var(--font-heading-weight);padding-bottom:var(--space-1);border-bottom:2px solid var(--color-divider);font-size:20px}.level-head{gap:var(--space-2);flex-direction:column;display:flex}.boss{border-left:4px solid var(--color-accent);padding:var(--space-3);background:var(--color-surface)}.hint{border:2px solid var(--color-divider);padding:var(--space-2) var(--space-3)}.hint--locked{border:2px dashed var(--color-divider);padding:var(--space-2) var(--space-3);color:var(--color-text-muted)}.egg{border:2px solid var(--color-accent-2);background:var(--color-accent-2-100);padding:var(--space-2) var(--space-3)}.score-pill{font-variant-numeric:tabular-nums;font-family:var(--font-heading);font-weight:var(--font-heading-weight);background:var(--color-accent);color:var(--color-bg);padding:var(--space-1) var(--space-3);align-items:center;gap:4px;font-size:18px;display:inline-flex}.progress-dots{align-items:center;gap:var(--space-1);display:inline-flex}.progress-dots__dot{width:12px;height:12px;display:inline-block}.progress-dots__dot--done{background:var(--color-accent)}.progress-dots__dot--current{outline:2px solid var(--color-accent);outline-offset:1px;background:0 0}.progress-dots__dot--todo{background:var(--color-neutral-300)}.lock-note{border-left:4px solid var(--color-accent-2);padding:var(--space-2) var(--space-3);color:var(--color-text-muted);font-size:14px}.dropzone{border:2px dashed var(--color-divider);padding:var(--space-3);gap:var(--space-2);flex-direction:column;display:flex}.dropzone.is-dragging{border-color:var(--color-accent);background:var(--color-accent-100)}.photo{border:2px solid var(--color-divider);overflow:hidden}.photo img{width:100%;display:block}.checklist__item{align-items:center;gap:var(--space-2);padding:var(--space-2);border-bottom:1px solid var(--color-divider);display:flex}.masq-banner{z-index:60;background:var(--color-accent);color:var(--color-on-accent);padding:var(--space-2) var(--space-4);justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;font-size:15px;display:flex;position:sticky;top:0}.filters{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}
