.login-page[data-v-f1aeabf6]{justify-content:center;align-items:center;min-height:100dvh;padding:1.25rem;display:flex;position:relative;overflow:hidden}.login-bg[data-v-f1aeabf6]{z-index:0;background:radial-gradient(circle at 15% 20%,#4ecdc459,#0000 45%),radial-gradient(circle at 85% 75%,#ff6b4a40,#0000 40%),linear-gradient(160deg,#e3f2fd 0%,#fff5f0 50%,#e8faf8 100%);position:absolute;inset:0}.login-card[data-v-f1aeabf6]{z-index:1;text-align:center;width:min(440px,100%);animation:.5s cubic-bezier(.16,1,.3,1) rise-f1aeabf6;position:relative}@keyframes rise-f1aeabf6{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.brand-icon[data-v-f1aeabf6]{margin-bottom:.5rem}form[data-v-f1aeabf6]{text-align:left;flex-direction:column;gap:.85rem;margin-top:1.5rem;display:flex}.field[data-v-f1aeabf6]{flex-direction:column;gap:.35rem;display:flex}.submit-btn[data-v-f1aeabf6]{justify-content:center;width:100%;margin-top:.5rem;padding:.85em;font-size:1.15rem}.map-wrap[data-v-3da664de]{width:100%;padding:0;position:relative;overflow:hidden}.map-toolbar[data-v-3da664de]{border-bottom:2px solid var(--border);background:var(--bg-soft);flex-wrap:wrap;align-items:center;gap:.35rem;padding:.55rem .75rem;display:flex}.map-toolbar .zoom-btn[data-v-3da664de]{box-sizing:border-box;border:2px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;margin:0;padding:0;font-weight:700;transition:border-color .15s,background .15s;display:inline-flex;transform:none}.map-toolbar .zoom-btn[data-v-3da664de]:hover{border-color:var(--secondary);background:#fff;transform:none}.map-toolbar .zoom-btn[data-v-3da664de]:active{transform:scale(.97)}.map-toolbar .zoom-btn.icon[data-v-3da664de]{width:36px;min-width:36px;height:36px}.map-toolbar .zoom-btn.text[data-v-3da664de]{height:36px;padding:0 .85rem;font-size:.85rem}.zoom-label[data-v-3da664de]{text-align:center;min-width:3rem;color:var(--text-muted);font-size:.9rem;font-weight:800}.zoom-hint[data-v-3da664de]{color:var(--text-muted);margin-left:auto;font-size:.8rem;font-weight:600}.map-viewport[data-v-3da664de]{aspect-ratio:1010/666;cursor:default;touch-action:none;-webkit-user-select:none;user-select:none;width:100%;position:relative;overflow:hidden}.map-viewport.zoomed[data-v-3da664de]{cursor:grab}.map-viewport.zoomed.dragging[data-v-3da664de]{cursor:grabbing}.world-svg[data-v-3da664de]{width:100%;height:100%;display:block;position:absolute;inset:0}.pin-layer[data-v-3da664de]{pointer-events:none;z-index:2;position:absolute;inset:0}.pin-layer .map-pin[data-v-3da664de]{color:inherit;cursor:pointer;pointer-events:auto;background:0 0;border:none;border-radius:0;outline:none;flex-direction:column;align-items:center;gap:2px;min-width:0;margin:0;padding:0;transition:transform .12s;display:flex;position:absolute;transform:translate(-50%,-50%)}.pin-layer .map-pin[data-v-3da664de]:hover,.pin-layer .map-pin[data-v-3da664de]:active{background:0 0;transform:translate(-50%,-50%)scale(1.06)}.map-pin.active[data-v-3da664de]{z-index:3}.pin-badge[data-v-3da664de]{background:#fff;border:2px solid #facc15;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:14px;line-height:1;display:flex;box-shadow:0 2px 6px #00000026}.pin-badge.lit[data-v-3da664de]{border-color:#eab308;box-shadow:0 0 0 2px #facc1559}.pin-badge.completed[data-v-3da664de]{border-color:#7eddd6}.pin-name[data-v-3da664de]{color:#1d3557;white-space:nowrap;opacity:0;pointer-events:none;text-overflow:ellipsis;background:#ffffffeb;border-radius:6px;max-width:5.5em;padding:2px 6px;font-size:11px;font-weight:800;overflow:hidden;box-shadow:0 1px 4px #0000001f}.pin-name.always[data-v-3da664de]{opacity:1;color:#475569;background:#ffffffd9;border:1px dashed #94a3b8;font-size:10px}.map-pin:hover .pin-name[data-v-3da664de],.map-pin.active .pin-name[data-v-3da664de],.show-labels .pin-name.show[data-v-3da664de]{opacity:1}.show-labels .pin-name.show[data-v-3da664de]{font-size:12px}.land-other[data-v-3da664de]{fill:#95c9a5;stroke:#fff;stroke-width:.5px;pointer-events:none}.land-project[data-v-3da664de]{cursor:pointer;stroke:#fff;stroke-width:1.5px;outline:none}.land-project.unlit[data-v-3da664de]{fill:#95c9a566;stroke:#64748b;stroke-width:2px;stroke-dasharray:5 4}.land-project.lit[data-v-3da664de]{fill:#95c9a5bf;stroke:#eab308;stroke-width:2.5px}.land-project.completed[data-v-3da664de]{fill:#95c9a5bf;stroke:#4ecdc4;stroke-width:2.5px}.land-project.is-hovered.unlit[data-v-3da664de]{fill:#b4dcbe99}.land-project.is-hovered.lit[data-v-3da664de],.land-project.is-hovered.completed[data-v-3da664de]{fill:#a8d4b4d9}.hover-bar[data-v-3da664de]{border-top:2px solid var(--border);background:var(--bg-soft);flex-wrap:wrap;align-items:center;gap:.5rem .75rem;min-height:2.6rem;padding:.65rem 1rem;display:flex}.hover-bar.empty[data-v-3da664de]{justify-content:center}.hover-placeholder[data-v-3da664de]{color:var(--text-muted);font-size:.88rem;font-weight:600}.hover-name[data-v-3da664de]{color:var(--text);font-size:1rem;font-weight:800}.hover-status[data-v-3da664de]{border-radius:999px;padding:.2em .65em;font-size:.88rem;font-weight:700}.hover-status.lit[data-v-3da664de]{color:#a16207;background:#fffbeb;border:2px solid #facc15}.hover-status.completed[data-v-3da664de]{color:#1a5c56;background:#4ecdc447}.hover-status.unlit[data-v-3da664de]{color:var(--text-muted);background:#64748b26}.hover-hint[data-v-3da664de]{color:var(--secondary-dark);margin-left:auto;font-size:.85rem;font-weight:700}@media (width<=640px){.zoom-hint[data-v-3da664de]{width:100%;margin-left:0}.pin-badge[data-v-3da664de]{width:22px;height:22px;font-size:12px}}.map-page[data-v-1ce96a4b]{max-width:1400px;min-height:100dvh;margin:0 auto;padding:1rem 1.5rem 2rem}.header[data-v-1ce96a4b]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.header-left[data-v-1ce96a4b]{align-items:center;gap:.85rem;display:flex}.logo-wrap[data-v-1ce96a4b]{background:var(--card);border:2px solid var(--border);width:56px;height:56px;box-shadow:var(--shadow);border-radius:16px;justify-content:center;align-items:center;display:flex}.user-info[data-v-1ce96a4b]{align-items:center;gap:.75rem;display:flex}.greeting[data-v-1ce96a4b]{background:var(--card);border:2px solid var(--border);border-radius:999px;align-items:center;gap:.4rem;padding:.4em .9em;font-weight:700;display:inline-flex}.legend[data-v-1ce96a4b]{flex-wrap:wrap;justify-content:center;gap:1.5rem;margin-top:1.25rem;padding:.85rem 1.25rem;display:flex}.legend-item[data-v-1ce96a4b]{align-items:center;gap:.45rem;font-size:.95rem;font-weight:700;display:inline-flex}.legend-item.lit[data-v-1ce96a4b]{color:#a16207}.legend-item.done[data-v-1ce96a4b]{color:var(--secondary-dark)}.legend-item.unlit[data-v-1ce96a4b]{color:var(--text-muted)}.swatch[data-v-1ce96a4b]{border:1.5px solid #fff;border-radius:4px;width:18px;height:14px;box-shadow:0 1px 3px #00000026}.swatch.lit[data-v-1ce96a4b]{background:#95c9a5;box-shadow:inset 0 0 0 2.5px #eab308}.swatch.done[data-v-1ce96a4b]{background:#95c9a5;box-shadow:inset 0 0 0 2px #4ecdc4}.swatch.unlit[data-v-1ce96a4b]{background:#c8e6d08c;border:1.5px dashed #64748b}.legend-item.hint[data-v-1ce96a4b]{color:var(--text-muted);font-size:.88rem;font-weight:600}.guide-list[data-v-d8c86652]{flex-direction:column;gap:1rem;display:flex}.empty[data-v-d8c86652]{text-align:center;color:var(--text-muted);flex-direction:column;align-items:center;gap:.75rem;padding:2.5rem 1rem;display:flex}.empty-hint[data-v-d8c86652]{opacity:.85;font-size:.9em}.guide-item[data-v-d8c86652]{background:var(--bg-soft);border:2px solid var(--border);border-radius:16px;padding:1rem;transition:transform .2s}.guide-audio[data-v-d8c86652]{border-color:#ff9f4373}.guide-video[data-v-d8c86652]{border-color:#4f6ae673}.guide-item[data-v-d8c86652]:hover{transform:translateY(-2px)}.guide-title[data-v-d8c86652]{color:var(--primary);align-items:center;gap:.5rem;margin-bottom:.5rem;font-weight:800;display:flex}.text[data-v-d8c86652]{white-space:pre-wrap;line-height:1.65}.media-block[data-v-d8c86652]{margin-top:.5rem}.media-missing[data-v-d8c86652]{color:#c0392b;background:#c0392b14;border-radius:10px;padding:.75rem;font-size:.95em}.media-img[data-v-d8c86652]{border-radius:12px;max-width:100%;margin-top:.5rem}.media-player[data-v-d8c86652]{border-radius:10px;width:100%;margin-top:.25rem}.video-player[data-v-d8c86652]{background:#000;max-height:280px}.instrument-card[data-v-d8c86652]{align-items:center;gap:1rem;margin-top:.5rem;display:flex}.instrument-card img[data-v-d8c86652]{object-fit:cover;border:2px solid var(--border);border-radius:12px;width:88px;height:88px}.journal[data-v-b627263a]{flex-direction:column;gap:1rem;display:flex}.section[data-v-b627263a]{background:var(--bg-soft);border:2px solid var(--border);border-radius:16px;padding:1rem}.section-title[data-v-b627263a]{align-items:center;gap:.45rem;margin-bottom:.6rem;font-size:1.05rem;font-weight:800;display:flex}.hint[data-v-b627263a]{margin-bottom:.65rem;line-height:2}.inline-input[data-v-b627263a]{width:auto;min-width:4em;padding:.25em .5em;display:inline}.inline-input.wide[data-v-b627263a]{min-width:8em}.file-btn[data-v-b627263a]{background:var(--secondary);color:#1a3a38;cursor:pointer;border-radius:999px;align-items:center;gap:.4rem;margin-bottom:.5rem;padding:.5em 1em;font-weight:700;display:inline-flex}.file-btn.secondary[data-v-b627263a]{background:var(--card);border:2px solid var(--border);color:var(--text)}.preview[data-v-b627263a]{border:2px solid var(--border);border-radius:12px;max-width:100%;max-height:200px;margin:.5rem 0;display:block}.work-actions[data-v-b627263a]{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.work-actions button.recording[data-v-b627263a]{color:#fff;background:#e63946;animation:1.2s ease-in-out infinite rec-pulse-b627263a}@keyframes rec-pulse-b627263a{50%{opacity:.85}}.media-player[data-v-b627263a]{border-radius:10px;width:100%;margin:.5rem 0}textarea[data-v-b627263a]{margin-bottom:.5rem}@media (prefers-reduced-motion:reduce){.work-actions button.recording[data-v-b627263a]{animation:none}}.country-page[data-v-89f2d444]{max-width:1400px;min-height:100dvh;margin:0 auto;padding:1rem 1.5rem 2rem}.top-bar[data-v-89f2d444]{flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.title-block[data-v-89f2d444]{flex:1;min-width:180px}.badge-pill.lit[data-v-89f2d444]{color:#a16207;background:#fffbeb;border:2px solid #facc15}.badge-pill.done[data-v-89f2d444]{color:#1a5c56;background:#4ecdc459}.columns[data-v-89f2d444]{grid-template-columns:1fr 1fr;align-items:start;gap:1.25rem;display:grid}.panel-title[data-v-89f2d444]{align-items:center;gap:.5rem;margin-bottom:1rem;font-size:1.25rem;font-weight:800;display:flex}.guide-panel[data-v-89f2d444]{border-top:4px solid var(--primary)}.journal-panel[data-v-89f2d444]{border-top:4px solid var(--secondary)}@media (width<=900px),(orientation:portrait){.columns[data-v-89f2d444]{grid-template-columns:1fr}}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-cyrillic-ext-400-normal-CuPM9foi.woff2)format("woff2"),url(/assets/nunito-cyrillic-ext-400-normal-xaE7D4Sw.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-cyrillic-400-normal-xAOo5cBP.woff2)format("woff2"),url(/assets/nunito-cyrillic-400-normal-D1j0u8EH.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-vietnamese-400-normal-BHkVbP3T.woff2)format("woff2"),url(/assets/nunito-vietnamese-400-normal-DtOtW02z.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-latin-ext-400-normal-i-8OOpdj.woff2)format("woff2"),url(/assets/nunito-latin-ext-400-normal-CjMJVfGn.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-latin-400-normal-r8SDr6Up.woff2)format("woff2"),url(/assets/nunito-latin-400-normal-DKg4f3fz.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-cyrillic-ext-600-normal-CWPPjBOD.woff2)format("woff2"),url(/assets/nunito-cyrillic-ext-600-normal-vnfu4DTE.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-cyrillic-600-normal-DJGQ2h05.woff2)format("woff2"),url(/assets/nunito-cyrillic-600-normal-BUjmtIuu.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-vietnamese-600-normal-BY8O6Cug.woff2)format("woff2"),url(/assets/nunito-vietnamese-600-normal-DO1RqFw5.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-latin-ext-600-normal-Dd9Zuxh1.woff2)format("woff2"),url(/assets/nunito-latin-ext-600-normal-BKUpuB78.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-latin-600-normal-Br8yIETf.woff2)format("woff2"),url(/assets/nunito-latin-600-normal-Cd0eNu1l.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-cyrillic-ext-700-normal-BuR0mlCG.woff2)format("woff2"),url(/assets/nunito-cyrillic-ext-700-normal-DfoqN4Gs.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-cyrillic-700-normal-DP36NgGt.woff2)format("woff2"),url(/assets/nunito-cyrillic-700-normal-DfHRUDv-.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-vietnamese-700-normal-Ch8EUCfz.woff2)format("woff2"),url(/assets/nunito-vietnamese-700-normal-C9SQsXvj.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-latin-ext-700-normal-BWeMsAzO.woff2)format("woff2"),url(/assets/nunito-latin-ext-700-normal-D4woHhbd.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-latin-700-normal-Dort48En.woff2)format("woff2"),url(/assets/nunito-latin-700-normal-OcDqTBcA.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-cyrillic-ext-800-normal-B-cvGohL.woff2)format("woff2"),url(/assets/nunito-cyrillic-ext-800-normal-pjRatrRO.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-cyrillic-800-normal-D3igD7Kl.woff2)format("woff2"),url(/assets/nunito-cyrillic-800-normal-DymMgApb.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-vietnamese-800-normal-D_CZYdm9.woff2)format("woff2"),url(/assets/nunito-vietnamese-800-normal-Dz0hZPb5.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-latin-ext-800-normal-CtU8tJOV.woff2)format("woff2"),url(/assets/nunito-latin-ext-800-normal-CDcxIxx8.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-latin-800-normal-Dz8SOQK_.woff2)format("woff2"),url(/assets/nunito-latin-800-normal-D-J0wlBY.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#e3f2fd;--bg-soft:#f0f9ff;--primary:#ff6b4a;--primary-dark:#e85a3a;--secondary:#4ecdc4;--secondary-dark:#3db8b0;--accent:#ffe66d;--text:#2d3436;--text-muted:#636e72;--card:#fff;--border:#b8dff5;--success:#6bcb77;--shadow:0 8px 32px #2d343614;--radius-card:20px;--radius-input:14px;font-size:clamp(17px,2vw,22px)}@media (prefers-color-scheme:dark){:root{--bg:#1a2332;--bg-soft:#222d3f;--text:#f1f5f9;--text-muted:#94a3b8;--card:#263245;--border:#3d4f66;--shadow:0 8px 32px #00000059}}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);min-height:100dvh;font-family:Nunito,PingFang SC,Microsoft YaHei,sans-serif;line-height:1.5}#app{min-height:100dvh}button{font:inherit;cursor:pointer;background:var(--primary);color:#fff;border:none;border-radius:999px;padding:.65em 1.5em;font-weight:700;transition:transform .2s cubic-bezier(.16,1,.3,1),background .2s}button:hover:not(:disabled){background:var(--primary-dark)}button:active:not(:disabled){transform:scale(.98)}button:disabled{opacity:.65;cursor:not-allowed}button.secondary{background:var(--secondary);color:#1a3a38}button.secondary:hover:not(:disabled){background:var(--secondary-dark)}button.ghost{color:var(--primary);border:2px solid var(--primary);background:0 0}input,textarea,select{font:inherit;border:2px solid var(--border);border-radius:var(--radius-input);background:var(--card);width:100%;color:var(--text);padding:.65em .9em;transition:border-color .2s,box-shadow .2s}input:focus,textarea:focus,select:focus{border-color:var(--secondary);outline:none;box-shadow:0 0 0 3px #4ecdc459}input::placeholder,textarea::placeholder{color:var(--text-muted);opacity:.85}label{font-size:.95em;font-weight:700}.card{background:var(--card);border-radius:var(--radius-card);box-shadow:var(--shadow);border:2px solid var(--border);padding:1.35rem}.page-title{color:var(--primary);font-size:clamp(1.5rem,4vw,2.2rem);font-weight:800;line-height:1.15}.subtitle{color:var(--text-muted);max-width:42ch;margin-top:.35rem;font-size:1.05rem}.error-msg{color:#e63946;margin-top:.5rem;font-weight:600}.success-msg{color:var(--success);margin-top:.5rem;font-weight:700}.icon-btn{align-items:center;gap:.4em;display:inline-flex}.badge-pill{background:var(--accent);color:var(--text);border-radius:999px;align-items:center;gap:.35em;padding:.35em .9em;font-size:.9em;font-weight:700;display:inline-flex}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
