@import"https://fonts.googleapis.com/css2?family=Outfit:wght@400;600;700;800&family=DM+Sans:wght@400;500;600;700&display=swap";:root{--g9: #003d24;--g8: #00693e;--g7: #00874f;--acc: #b9d9eb;--acc2: #8ec8e0;--bg: #f0f7fb;--border: #cce4f0;--text: #0d2416;--muted: #6b8fa3;--urgent: #dc2626;--urgent-bg: #fef2f2;--closed: #94a3b8;--closed-bg: #f1f5f9;--gold: #f5a524;--scrollbar-track: #e6f1f7;--scrollbar-thumb: rgba(0,135,79,.22);--scrollbar-thumb-hover: rgba(0,135,79,.42)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}.app{font-family:DM Sans,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;padding-bottom:40px;position:relative}button,input{font-family:inherit}button:focus-visible,input:focus-visible,.card-head:focus-visible{outline:2.5px solid var(--g7);outline-offset:2px}button:active{transform:scale(.97)}*{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--scrollbar-track);border-radius:99px}::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#00874f52,#8ec8e047);border-radius:99px;border:1.5px solid transparent;background-clip:padding-box;-webkit-transition:background .2s;transition:background .2s}::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#00874f8f,#8ec8e06b);background-clip:padding-box;border:1.5px solid transparent}::-webkit-scrollbar-corner{background:transparent}.fullpage-loading,.fullpage-error{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;text-align:center;color:var(--muted)}.spinner{display:inline-block;width:16px;height:16px;border:2.5px solid rgba(0,135,79,.18);border-top-color:var(--g7);border-radius:50%;animation:spin .75s linear infinite;vertical-align:middle}.btn-loading{opacity:.72;cursor:not-allowed;pointer-events:none;position:relative}.skel-line{background:linear-gradient(90deg,#e2eff4,#eef7fa 40%,#e2eff4 60%,#e2eff4);background-size:260% 100%;border-radius:6px;animation:skel-shimmer 1.3s infinite}.skel-shimmer{background:linear-gradient(90deg,#e6f1f7,#f3f9fc 40%,#e6f1f7 60%,#e6f1f7);background-size:260% 100%;animation:skel-shimmer 1.3s infinite;position:relative;overflow:hidden}@keyframes skel-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.stats-skel-wrap{background:linear-gradient(90deg,#fff,#f3f9fc 40%,#fff 60%,#fff)!important;background-size:260% 100%;animation:skel-shimmer 1.3s infinite}.spinner-dark{border-color:#00693e33;border-top-color:var(--g8);width:28px;height:28px}.empty-state-inline{text-align:center;padding:40px 20px;color:var(--muted);font-size:13.5px}.topbar{background:linear-gradient(135deg,var(--g9),var(--g8));padding:18px 20px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 2px 16px #003d2440;position:sticky;top:0;z-index:10}.topbar-eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:#b9d9eb8c;font-weight:700}.topbar-title{font-family:Outfit,sans-serif;font-weight:800;font-size:20px;color:#fff}.btn-ghost{display:flex;align-items:center;gap:6px;background:#b9d9eb1a;border:1.5px solid rgba(185,217,235,.3);color:var(--acc);padding:8px 12px;border-radius:10px;font-size:12px;font-weight:700;cursor:pointer;transition:background .15s}.btn-ghost:hover{background:#b9d9eb2e}.content{max-width:560px;margin:0 auto;padding:0 16px}.progress-card{margin:16px 0 18px;background:#fff;border:1px solid var(--border);border-radius:18px;padding:18px 20px;box-shadow:0 2px 12px #003d240f;animation:fadeUp .4s ease both}.progress-top{display:flex;align-items:center;justify-content:space-between;gap:14px}.progress-greeting{font-family:Outfit,sans-serif;font-weight:800;font-size:16px}.progress-sub{font-size:12.5px;color:var(--muted);margin-top:3px}.progress-ring-wrap{position:relative;width:52px;height:52px;flex-shrink:0}.progress-ring{transform:rotate(-90deg)}.progress-ring-bg{fill:none;stroke:var(--bg);stroke-width:5}.progress-ring-fg{fill:none;stroke:var(--g8);stroke-width:5;stroke-linecap:round;transition:stroke-dashoffset .6s cubic-bezier(.4,0,.2,1)}.progress-ring-label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-family:Outfit,sans-serif;font-weight:800;font-size:11.5px;color:var(--g8)}.list{display:flex;flex-direction:column;gap:14px}.card{background:#fff;border-radius:18px;border:1px solid var(--border);overflow:hidden;position:relative;box-shadow:0 2px 10px #003d240d;transition:box-shadow .2s;animation:cardIn .4s cubic-bezier(.2,.8,.2,1) both}@keyframes cardIn{0%{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}.card-expanded{box-shadow:0 8px 28px #003d2424}.card-done{background:linear-gradient(180deg,#f4fbf7,#fff 40%)}.strip{height:4px;width:100%}.strip-active{background:linear-gradient(90deg,var(--g8),var(--g7))}.strip-active-urgent{background:linear-gradient(90deg,var(--urgent),#f5766a)}.strip-closed{background:var(--closed)}.strip-done{background:linear-gradient(90deg,var(--g7),var(--gold))}.card-head{width:100%;text-align:left;background:none;border:none;padding:18px 18px 14px;cursor:pointer;color:inherit}.card-head-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.subject-chip{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;background:var(--acc);color:var(--g9);padding:3px 9px;border-radius:6px}.badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;padding:3px 9px;border-radius:20px}.badge-active{background:#e6f7ef;color:var(--g8)}.badge-urgent{background:var(--urgent-bg);color:var(--urgent)}.badge-closed{background:var(--closed-bg);color:var(--closed)}.badge-done{background:#fff4de;color:#b45309}.dot{width:6px;height:6px;border-radius:50%;background:currentColor}.dot.pulse{animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.card-title{font-family:Outfit,sans-serif;font-weight:700;font-size:16.5px;line-height:1.3;margin-bottom:6px}.card-meta{font-size:12px;color:var(--muted);display:flex;gap:6px;margin-bottom:14px}.meta-dot{opacity:.5}.deadline-block{display:flex;align-items:center;gap:9px;background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:11px 14px;color:var(--g8)}.deadline-label{font-family:Outfit,sans-serif;font-weight:700;font-size:14px}.deadline-urgent{background:var(--urgent-bg);border-color:#fecaca;color:var(--urgent)}.deadline-urgent .deadline-label{font-size:17px;font-variant-numeric:tabular-nums;letter-spacing:.02em}.deadline-ticking{animation:tick 1s ease-in-out infinite}@keyframes tick{0%,to{opacity:1}50%{opacity:.75}}.deadline-closed{background:var(--closed-bg);border-color:#e2e8f0;color:var(--closed)}.deadline-done{background:#fff4de;border-color:#fde3b0;color:#b45309}.chip-row{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.chip{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:var(--muted);background:var(--bg);border:1px solid var(--border);padding:5px 10px;border-radius:20px}.card-body{padding:4px 18px 20px;border-top:1px solid var(--border);animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.description{font-size:13.5px;color:var(--muted);line-height:1.6;margin:14px 0}.btn-secondary{display:inline-flex;align-items:center;gap:7px;background:#fff;border:1.5px solid var(--g8);color:var(--g8);padding:9px 14px;border-radius:10px;font-size:12.5px;font-weight:700;cursor:pointer;margin-bottom:16px;text-decoration:none;transition:background .15s}.btn-secondary:hover{background:#e6f7ef}.closed-notice,.done-notice,.attachment-disabled{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:12px;font-size:12.5px;line-height:1.5}.closed-notice{background:var(--closed-bg);border:1px solid #e2e8f0;color:var(--muted)}.done-notice{background:#fff4de;border:1px solid #fde3b0;color:#92620a}.attachment-disabled{background:#eef2f7;border:1px dashed #cbd5e1;color:#64748b;margin-bottom:16px;align-items:center}.submit-form{display:flex;flex-direction:column;gap:4px}.field-label{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:10px 0 6px}.input{border:1.5px solid var(--border);border-radius:10px;padding:11px 13px;font-size:14px;outline:none;color:var(--text);transition:border-color .15s;width:100%}.input:focus{border-color:var(--g7)}.dropzone{display:flex;flex-direction:column;align-items:center;gap:6px;border:2px dashed var(--border);border-radius:12px;padding:20px 14px;color:var(--muted);font-size:13px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s,transform .15s}.dropzone:hover{border-color:var(--g7);background:var(--bg)}.dropzone-active{border-color:var(--g7);background:#e6f7ef;transform:scale(1.015)}.dropzone-filled{border-color:var(--g8);background:#e6f7ef;color:var(--g8);font-weight:600;border-style:solid}.dropzone-error{border-color:var(--urgent)}.dropzone-hint{font-size:10.5px;color:var(--muted)}.field-error{color:var(--urgent);font-size:12px;font-weight:600;margin-top:6px}.field-error-center{text-align:center}.btn-submit{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(135deg,var(--g9),var(--g8));color:var(--acc);border:none;border-radius:12px;padding:14px;font-size:14px;font-weight:700;cursor:pointer;margin-top:16px;transition:transform .15s,box-shadow .15s,filter .15s}.btn-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 18px #003d2447;filter:brightness(1.08)}.btn-submit:active:not(:disabled){transform:scale(.97)}.btn-submit:disabled{opacity:.7;cursor:not-allowed}.spinner{width:16px;height:16px;border-radius:50%;border:2px solid rgba(185,217,235,.35);border-top-color:var(--acc);animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.celebrate-panel{display:flex;flex-direction:column;align-items:center;gap:6px;padding:26px 18px 30px;text-align:center;animation:fadeUp .35s cubic-bezier(.2,.8,.2,1) both}.celebrate-title{font-family:Outfit,sans-serif;font-weight:800;font-size:16px;color:var(--g8);margin-top:4px}.celebrate-sub{font-size:12.5px;color:var(--muted)}.drawn-check-circle{stroke:var(--g8);stroke-width:3;stroke-dasharray:151;stroke-dashoffset:151;animation:drawCircle .5s ease forwards}.drawn-check-mark{stroke:var(--g8);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:40;stroke-dashoffset:40;animation:drawCheck .35s ease forwards .45s}@keyframes drawCircle{to{stroke-dashoffset:0}}@keyframes drawCheck{to{stroke-dashoffset:0}}.confetti-layer{position:fixed;width:0;height:0;z-index:60;pointer-events:none}.confetti-piece{position:absolute;border-radius:2px;opacity:0;animation:confettiFly .9s cubic-bezier(.15,.7,.3,1) forwards}@keyframes confettiFly{0%{opacity:1;transform:translate(0) rotate(0)}to{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(var(--rot))}}.gate-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;position:relative;overflow:hidden}.gate-orb{position:absolute;border-radius:50%;filter:blur(60px);opacity:.35;animation:float 8s ease-in-out infinite}.gate-orb-1{width:260px;height:260px;background:var(--acc);top:-60px;left:-60px}.gate-orb-2{width:220px;height:220px;background:var(--g7);bottom:-60px;right:-40px;animation-delay:-3s}@keyframes float{0%,to{transform:translate(0)}50%{transform:translate(14px,-18px)}}.gate-card{background:#fff;border-radius:22px;border:1px solid var(--border);box-shadow:0 8px 32px #003d241f;width:100%;max-width:380px;padding:36px 30px;text-align:center;animation:fadeUp .4s ease both;position:relative;z-index:1}.gate-card.shake{animation:shake .45s ease}@keyframes shake{10%,90%{transform:translate(-3px)}20%,80%{transform:translate(5px)}30%,50%,70%{transform:translate(-7px)}40%,60%{transform:translate(7px)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.gate-icon{font-size:34px;margin-bottom:10px}.gate-title{font-family:Outfit,sans-serif;font-weight:800;font-size:22px;margin-bottom:6px}.gate-sub{font-size:13px;color:var(--muted);margin-bottom:22px}.pin-input{width:100%;border:2px solid var(--border);border-radius:14px;padding:16px;font-size:26px;font-family:Outfit,sans-serif;font-weight:700;letter-spacing:.3em;text-align:center;outline:none;color:var(--text);transition:border-color .15s}.pin-input:focus{border-color:var(--g7)}.pin-input-error{border-color:var(--urgent)}.toast-stack{position:fixed;bottom:20px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;z-index:50;width:calc(100% - 32px);max-width:400px}.toast{display:flex;align-items:center;gap:9px;padding:12px 16px;border-radius:12px;font-size:13px;font-weight:600;box-shadow:0 6px 20px #00000026;animation:toastIn .25s ease both}@keyframes toastIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.toast-success{background:var(--g8);color:#fff}.toast-error{background:var(--urgent);color:#fff}.toast-info{background:var(--g9);color:var(--acc)}@media (prefers-reduced-motion: reduce){.dot.pulse,.deadline-ticking,.spinner,.gate-orb,.card,.confetti-piece,.drawn-check-circle,.drawn-check-mark,.celebrate-panel{animation:none}}.chip-green{background:#dcfce7;border-color:#86efac;color:#166534}.pulse-badge{animation:pulseGlow 2s ease-in-out infinite}@keyframes pulseGlow{0%,to{box-shadow:0 0 #22c55e59}50%{box-shadow:0 0 0 6px #22c55e00}}.own-submission-block{margin:14px 0 16px;padding:14px;background:linear-gradient(135deg,#f0fdf4,#fff);border:1.5px solid #bbf7d0;border-radius:14px}.own-submission-block .btn-secondary{margin-bottom:0}.resubmit-window{margin-top:10px;padding:14px;background:linear-gradient(180deg,#fff7ed,#fff 70%);border:1.5px solid #fed7aa;border-radius:14px;animation:fadeUp .25s cubic-bezier(.2,.8,.2,1)}.resubmit-window .deadline-block{margin-bottom:10px}.cell-sub{font-size:11px;color:var(--muted)}
