:root{--color-cream:#fff6e3;--color-cream-warm:#ffe9c2;--color-ink:#1f2a2a;--color-ink-soft:rgba(31,42,42,.72);--color-ink-faint:rgba(31,42,42,.18);--color-teal:#32a7a3;--color-teal-ink:#1f6664;--color-sun:#f2b410;--color-sun-soft:#ffe08a;--color-rose:#e07360;--color-white:#fff;--font-head:"Fredoka",sans-serif;--font-body:"Plus Jakarta Sans",sans-serif;--font-logo:"Andika",sans-serif;--shadow-marker-sm:3px 3px 0 var(--color-ink);--shadow-marker-md:5px 5px 0 var(--color-ink);--shadow-marker-lg:8px 8px 0 var(--color-ink);--radius-card:16px;--radius-control:16px;--radius-pill:999px;--radius-badge:999px;--radius-progress:4px}*{box-sizing:border-box}body{background:var(--color-cream);color:var(--color-ink-soft);font-family:var(--font-body);font-size:15px;line-height:1.5;margin:0;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3{color:var(--color-ink);font-family:var(--font-head);letter-spacing:-.01em;line-height:1.15;margin:0 0 12px}h1{font-size:clamp(28px,4vw,40px)}h1,h2{font-weight:600}h2{font-size:clamp(22px,3vw,28px)}h3{font-size:18px;font-weight:500}em,i{font-style:normal}:focus-visible{border-radius:2px;outline:3px solid var(--color-teal);outline-offset:2px}.card{background:var(--color-white);border:2.5px solid var(--color-ink);border-radius:var(--radius-card);padding:20px}.card-marker{box-shadow:var(--shadow-marker-md)}.surface{background:var(--color-cream-warm)}.btn-primary,.btn-rose,.btn-teal{align-items:center;border:2.5px solid var(--color-ink);border-radius:16px;box-shadow:var(--shadow-marker-md);cursor:pointer;display:inline-flex;font-family:var(--font-body);font-size:15px;font-weight:700;gap:10px;justify-content:center;padding:16px 26px;text-decoration:none;transition:transform .1s ease-out,box-shadow .1s ease-out;width:100%}.btn-primary{background:var(--color-sun);color:var(--color-ink)}.btn-teal{background:var(--color-teal)}.btn-rose,.btn-teal{color:var(--color-white)}.btn-rose{background:var(--color-rose)}.btn-primary:hover:not(:disabled),.btn-rose:hover:not(:disabled),.btn-teal:hover:not(:disabled){box-shadow:var(--shadow-marker-sm);transform:translate(2px,2px)}.btn-primary:disabled,.btn-rose:disabled,.btn-teal:disabled{cursor:default;opacity:.5}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.field label{color:var(--color-ink);font-family:var(--font-head);font-size:13px;font-weight:500}.field input,.field select,.field textarea{background:var(--color-white);border:2.5px solid var(--color-ink);border-radius:14px;color:var(--color-ink);font-family:var(--font-body);font-size:14px;padding:14px 18px;transition:border-color .15s ease-out}.field input::-moz-placeholder,.field select::-moz-placeholder,.field textarea::-moz-placeholder{color:var(--color-ink-soft)}.field input::placeholder,.field select::placeholder,.field textarea::placeholder{color:var(--color-ink-soft)}.field input:focus,.field select:focus,.field textarea:focus{border-radius:2px;outline:3px solid var(--color-teal);outline-offset:2px}.field:has(.field-error) input,.field:has(.field-error) select,.field:has(.field-error) textarea{border-color:var(--color-rose)}.field-error{color:var(--color-rose);font-size:13px}.input-filled{background:var(--color-cream-warm);border:2.5px solid var(--color-ink);border-radius:14px}.input-filled::-moz-placeholder{color:var(--color-ink-soft);font-size:14px}.input-filled::placeholder{color:var(--color-ink-soft);font-size:14px}.input-filled:focus{outline:3px solid var(--color-teal);outline-offset:2px}.auth-heading{color:var(--color-ink);font-family:var(--font-head);font-size:clamp(28px,4vw,40px);font-weight:600;margin:0}.auth-subhead{color:var(--color-ink-soft);font-family:var(--font-body);font-size:15px;margin:0}.wordmark{color:var(--color-sun);font-family:var(--font-logo);font-size:26px;line-height:1;text-decoration:none}.chip{align-items:center;background:var(--color-white);border:2.5px solid var(--color-ink);border-radius:var(--radius-pill);color:var(--color-ink);cursor:pointer;display:inline-flex;font-family:var(--font-body);font-size:13px;font-weight:600;gap:4px;padding:8px 16px;transition:background-color .15s ease-out,border-color .15s ease-out}.chip.selected{background:var(--color-sun-soft);border-color:var(--color-ink)}.chip.selected:before{content:"✓ "}.toggle-btn{background:var(--color-white);border:2.5px solid var(--color-ink);border-radius:14px;color:var(--color-ink);cursor:pointer;font-family:var(--font-body);font-size:14px;font-weight:500;padding:12px 24px;transition:background-color .15s ease-out,color .15s ease-out}.toggle-btn.selected{background:var(--color-teal);border-color:var(--color-ink);color:var(--color-white)}.progress-segments{display:flex;gap:6px}.progress-segment{background:var(--color-ink-faint);border-radius:var(--radius-progress);flex:1;height:8px;transition:background-color .2s ease-out}.progress-segment.done{background:var(--color-teal)}.step-label{color:var(--color-teal-ink);font-family:var(--font-head);font-size:14px;font-weight:500;text-align:right}.badge-pill{align-items:center;background:var(--color-sun-soft);border-radius:var(--radius-badge);display:inline-flex;font-size:12px;justify-content:center;padding:2px 10px}.badge-pill,.pill-blue,.pill-green,.pill-purple,.pill-teal{color:var(--color-ink);font-family:var(--font-body);font-weight:700}.pill-blue,.pill-green,.pill-purple,.pill-teal{border:2px solid var(--color-ink);border-radius:999px;display:inline-block;font-size:11px;letter-spacing:.04em;padding:3px 10px}.pill-teal{background:#32a7a340}.pill-blue{background:#6ea8fe4d}.pill-purple{background:#b39ddb59}.pill-green{background:#9ccc9c66}.kicker{align-items:center;color:var(--color-teal-ink);display:inline-flex;font-family:var(--font-head);font-size:13px;font-weight:500;gap:8px;letter-spacing:.02em}.kicker:before{background:var(--color-sun);border-radius:50%;box-shadow:0 0 0 2px var(--color-cream),0 0 0 3.5px var(--color-ink);content:"";flex-shrink:0;height:10px;width:10px}.c1-h1{font-size:40px;line-height:1.05;margin:8px 0 12px}.c1-h1,.c1-h2{font-family:var(--font-head);font-weight:600}.c1-h2{font-size:26px;line-height:1.1;margin:4px 0 0}.under{position:relative;white-space:nowrap}.under:after{background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='40' height='8' viewBox='0 0 40 8'><path d='M0 5 Q5 0 10 5 T20 5 T30 5 T40 5' fill='none' stroke='%23e07360' stroke-width='2.5' stroke-linecap='round'/></svg>") repeat-x;bottom:-6px;content:"";height:8px;left:0;position:absolute;right:0}.card-tilt-1,.card-tilt-2,.card-tilt-3{transition:transform .12s ease-out}@media(min-width:768px){.card-tilt-1{transform:rotate(-1.2deg)}.card-tilt-2{transform:rotate(.8deg)}.card-tilt-3{transform:rotate(-.6deg)}.card-tilt-1:hover,.card-tilt-2:hover,.card-tilt-3:hover{transform:rotate(0) translate(2px,2px)}}.date-badge{background:var(--color-white);border:2px solid var(--color-ink);border-radius:10px;box-shadow:var(--shadow-marker-sm);left:12px;line-height:1;padding:5px 9px;position:absolute;text-align:center;top:12px}.date-badge b{display:block;font-family:var(--font-head);font-size:18px;font-weight:600}.date-badge span{font-size:9px;font-weight:700;letter-spacing:.08em}.org-chip{align-items:center;color:var(--color-teal-ink);display:inline-flex;font-size:13px;font-weight:700;gap:6px;text-decoration:none}.org-chip i,.org-chip img{background:var(--color-teal);border:1.5px solid var(--color-ink);border-radius:50%;display:inline-block;height:18px;-o-object-fit:cover;object-fit:cover;width:18px}.spots{align-items:center;display:flex;font-size:12px;font-weight:700;gap:10px}.spots .bar{background:var(--color-white);border:2px solid var(--color-ink);border-radius:6px;flex:1;height:10px;overflow:hidden;position:relative}.spots .bar i{background:var(--color-sun);bottom:0;left:0;position:absolute;top:0}.spots.full .bar i{background:var(--color-rose)}.row-card{align-items:center;background:var(--color-white);border:2px solid var(--color-ink);border-radius:14px;color:inherit;display:grid;gap:14px;grid-template-columns:48px 1fr auto;padding:12px 14px;text-decoration:none;transition:transform .1s ease-out,box-shadow .1s ease-out}.row-card:hover{box-shadow:var(--shadow-marker-sm);transform:translate(2px,2px)}.row-card .ic{align-items:center;border:2px solid var(--color-ink);border-radius:12px;display:flex;font-family:var(--font-head);font-size:12px;font-weight:600;height:48px;justify-content:center;width:48px}.ic-ongoing{background:#e8e1f7}.ic-skills{background:#dff3f2}.ic-drive{background:var(--color-sun-soft)}.ic-event{background:#32a7a340}.row-card .row-title{font-family:var(--font-head);font-size:17px;font-weight:600;margin:0}.row-card .row-meta{color:var(--color-ink-soft);font-size:12px;margin-top:2px}.row-card .row-act{color:var(--color-teal-ink);font-size:12px;font-weight:700;white-space:nowrap}.polaroid{background:var(--color-white);border:2.5px solid var(--color-ink);border-radius:4px;box-shadow:6px 6px #1f2a2a33;padding:10px 10px 36px;transform:rotate(-3deg)}.polaroid .ph{aspect-ratio:4/3;background:var(--color-cream-warm);display:block;-o-object-fit:cover;object-fit:cover;width:100%}.polaroid .cap{color:var(--color-ink-soft);font-family:var(--font-head);font-size:13px;margin-top:10px}.sun-deco{background:radial-gradient(circle,var(--color-sun) 30%,transparent 32%),repeating-conic-gradient(var(--color-sun) 0 6deg,transparent 6deg 30deg);border-radius:50%;height:72px;opacity:.25;pointer-events:none;position:absolute;width:72px}.preview-bar{align-items:center;background:var(--color-ink);border-bottom:2px dashed rgba(255,246,227,.25);color:var(--color-cream);display:flex;font-family:var(--font-body);font-size:13px;font-weight:600;gap:12px;justify-content:space-between;padding:8px 32px}.preview-bar a{color:var(--color-sun);font-weight:700;text-decoration:none}.preview-bar a:hover{text-decoration:underline}.see-all{color:var(--color-teal-ink);font-size:14px;font-weight:700;text-decoration:none;white-space:nowrap}.see-all:hover{text-decoration:underline}.pill-line{display:flex;flex-wrap:wrap;gap:6px}.ws{--ws-ground:#f7f5ef;--ws-surface:#fff;--ws-surface-2:#fbfaf6;--ws-line:#e8e4da;--ws-line-strong:#d9d4c7;--ws-ink:#1f2a2a;--ws-ink-soft:#6a7474;--ws-teal:#32a7a3;--ws-teal-ink:#1c6f6c;--ws-teal-tint:#dff3f2;--ws-sun:#f2b410;--ws-sun-tint:#fff2cc;--ws-sun-ink:#7a5b00;--ws-rose:#e07360;--ws-rose-tint:#fbe3de;--ws-rose-ink:#b3452f;--ws-radius:10px;--ws-shadow:0 1px 2px rgba(31,42,42,.04);background:var(--ws-ground);color:var(--ws-ink);font-family:var(--font-body);font-size:14px}.ws h1{font-size:26px}.ws h1,.ws h2{font-family:var(--font-head);font-weight:600;margin:0}.ws h2{font-size:18px}.ws .ws-muted{color:var(--ws-ink-soft);font-size:12px}.ws .ws-section-title{color:var(--ws-ink-soft);font-size:11px;font-weight:700;letter-spacing:.08em;margin:24px 0 8px;text-transform:uppercase}.ws .ws-card{background:var(--ws-surface);border:1px solid var(--ws-line);border-radius:var(--ws-radius);box-shadow:var(--ws-shadow);padding:16px 18px}.ws .ws-grid-2{display:grid;gap:12px;grid-template-columns:1fr 1fr}.ws .ws-btn,.ws .ws-btn-danger,.ws .ws-btn-ghost{align-items:center;border:1px solid transparent;border-radius:8px;cursor:pointer;display:inline-flex;font-family:var(--font-body);font-size:13px;font-weight:700;gap:6px;justify-content:center;line-height:1.2;padding:8px 14px;text-decoration:none}.ws .ws-btn{background:var(--ws-teal);color:#fff}.ws .ws-btn:hover{background:var(--ws-teal-ink)}.ws .ws-btn-ghost{background:var(--ws-surface);border-color:var(--ws-line-strong);color:var(--ws-ink)}.ws .ws-btn-ghost:hover{background:var(--ws-surface-2)}.ws .ws-btn-danger{background:var(--ws-surface);border-color:var(--ws-rose);color:var(--ws-rose-ink)}.ws .ws-btn-danger:disabled,.ws .ws-btn-ghost:disabled,.ws .ws-btn:disabled{cursor:default;opacity:.5}.ws .ws-pill{background:#eef0ef;border-radius:999px;color:#3b4747;display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.02em;padding:2px 8px;white-space:nowrap}.ws .ws-pill.open,.ws .ws-pill.today{background:var(--ws-teal-tint);color:var(--ws-teal-ink)}.ws .ws-pill.completed{background:var(--ws-sun-tint);color:var(--ws-sun-ink)}.ws .ws-pill.canceled{background:var(--ws-rose-tint);color:var(--ws-rose-ink)}.ws .ws-pill.closed,.ws .ws-pill.draft{background:#eef0ef;color:#3b4747}.ws .ws-tabs{border-bottom:1px solid var(--ws-line);display:flex;gap:20px;margin-bottom:12px}.ws .ws-tabs button{background:none;border:none;border-bottom:2px solid transparent;color:var(--ws-ink-soft);cursor:pointer;font-family:var(--font-body);font-size:14px;font-weight:600;margin-bottom:-1px;padding:8px 2px}.ws .ws-tabs button.on{border-bottom-color:var(--ws-teal);color:var(--ws-teal-ink)}.ws .ws-chip{background:var(--ws-surface);border:1px solid var(--ws-line-strong);border-radius:999px;color:var(--ws-ink);cursor:pointer;font-family:var(--font-body);font-size:12px;font-weight:600;padding:5px 12px}.ws .ws-chip.on{background:var(--ws-ink);border-color:var(--ws-ink);color:#fff}.ws .ws-table{background:var(--ws-surface);border:1px solid var(--ws-line);border-collapse:separate;border-radius:var(--ws-radius);border-spacing:0;width:100%}.ws .ws-table th{background:var(--ws-surface-2);border-bottom:1px solid var(--ws-line);color:var(--ws-ink-soft);font-size:11px;font-weight:700;letter-spacing:.06em;padding:10px 12px;text-align:left;text-transform:uppercase}.ws .ws-table td{border-bottom:1px solid #f0ede5;padding:10px 12px;vertical-align:middle}.ws .ws-table tr:last-child td{border-bottom:none}.ws .ws-table tr.clickable{cursor:pointer}.ws .ws-table tr.clickable:hover td{background:var(--ws-surface-2)}.ws .ws-table thead th:first-child{border-top-left-radius:var(--ws-radius)}.ws .ws-table thead th:last-child{border-top-right-radius:var(--ws-radius)}.ws .ws-table tbody tr:last-child td:first-child{border-bottom-left-radius:var(--ws-radius)}.ws .ws-table tbody tr:last-child td:last-child{border-bottom-right-radius:var(--ws-radius)}.ws .ws-group-row td{background:var(--ws-surface-2);color:var(--ws-ink-soft);font-size:11px;font-weight:700;letter-spacing:.06em;padding:6px 12px;text-transform:uppercase}.ws .ws-field{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.ws .ws-field label{color:#4a5555;font-size:12px;font-weight:700}.ws .ws-field input,.ws .ws-field select,.ws .ws-field textarea,.ws .ws-input{background:var(--ws-surface);border:1px solid var(--ws-line-strong);border-radius:8px;box-sizing:border-box;color:var(--ws-ink);font-family:var(--font-body);font-size:14px;padding:8px 10px;width:100%}.ws .ws-field input:focus,.ws .ws-field select:focus,.ws .ws-field textarea:focus,.ws .ws-input:focus{border-color:var(--ws-teal);box-shadow:0 0 0 3px var(--ws-teal-tint)}.ws .ws-field input:focus:not(:focus-visible),.ws .ws-field select:focus:not(:focus-visible),.ws .ws-field textarea:focus:not(:focus-visible),.ws .ws-input:focus:not(:focus-visible){outline:none}.ws .ws-progress{background:#e6e2d8;border-radius:3px;display:inline-block;height:6px;position:relative;vertical-align:middle;width:72px}.ws .ws-progress i{background:var(--ws-sun);border-radius:3px;bottom:0;left:0;position:absolute;top:0}.ws .ws-skeleton{animation:ws-shimmer 1.2s infinite;background:linear-gradient(90deg,#eeeae0 25%,#f6f3eb,#eeeae0 75%);background-size:200% 100%;border-radius:6px}.ws .sr-only{height:1px;overflow:hidden;position:absolute;width:1px;clip:rect(0 0 0 0);white-space:nowrap}@keyframes ws-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.ws .field input,.ws .field select,.ws .field textarea{background:var(--ws-surface);border-color:var(--ws-line-strong);border-radius:8px;border-width:1px;box-shadow:none}.ws .field label{color:#4a5555;font-size:12px}.ws .chip,.ws .toggle-btn{border-radius:999px;border-width:1px;box-shadow:none}.ws .chip.selected,.ws .toggle-btn.selected{background:var(--ws-ink);border-color:var(--ws-ink);color:#fff}.ws .btn-teal{border-radius:8px;border-width:1px;box-shadow:none}.error-shell[data-v-b30cb225]{justify-content:center;min-height:100vh;padding:24px}.error-page[data-v-b30cb225],.error-shell[data-v-b30cb225]{align-items:center;display:flex}.error-page[data-v-b30cb225]{flex-direction:column;gap:16px;max-width:480px;text-align:center;width:100%}.error-message[data-v-b30cb225]{color:var(--color-ink-soft);font-family:var(--font-body);font-size:15px;margin:0}
