:root{color-scheme:light;--bg: #e6f0ed;--bg-deep: #d3e4df;--ink: #0c1f1c;--ink-2: #2a403c;--muted: #5f7570;--line: rgba(12, 31, 28, .1);--line-strong: rgba(12, 31, 28, .16);--surface: rgba(255, 255, 255, .78);--surface-2: #f4faf8;--accent: #0d9488;--accent-2: #0a3d38;--accent-soft: #ccfbf1;--coral: #e85d4c;--amber: #d97706;--ok: #159a5a;--shadow: 0 1px 0 rgba(255, 255, 255, .6) inset, 0 16px 40px rgba(10, 61, 56, .1);--shadow-sm: 0 8px 24px rgba(10, 61, 56, .08);--r: 20px;--r-sm: 14px;--nav: 72px;--safe-b: env(safe-area-inset-bottom, 0px);--safe-t: env(safe-area-inset-top, 0px);--font-d: "Bricolage Grotesque", system-ui, sans-serif;--font-b: "Figtree", system-ui, sans-serif;--ease: cubic-bezier(.22, 1, .36, 1)}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;color:var(--ink);font-family:var(--font-b);font-size:16px;line-height:1.45;background:radial-gradient(900px 520px at 85% -5%,rgba(13,148,136,.22),transparent 55%),radial-gradient(700px 420px at 0% 20%,rgba(232,93,76,.1),transparent 50%),linear-gradient(165deg,var(--bg),var(--bg-deep));background-attachment:fixed;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button,input,textarea,select{font:inherit;color:inherit}a{color:inherit;text-decoration:none}h1,h2,h3{font-family:var(--font-d);letter-spacing:-.04em;line-height:1.1;margin:0;font-weight:700}.app-shell{min-height:100dvh;display:flex;flex-direction:column;padding-bottom:28px}.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(10px + var(--safe-t)) 16px 12px;background:#e6f0edd1;-webkit-backdrop-filter:blur(18px) saturate(1.2);backdrop-filter:blur(18px) saturate(1.2);border-bottom:1px solid var(--line)}.brand{font-family:var(--font-d);font-weight:800;font-size:1.35rem;letter-spacing:-.05em}.brand em{font-style:normal;color:var(--accent)}.page{width:min(1080px,100%);margin:0 auto;padding:22px 16px 28px;animation:rise .5s var(--ease) both}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.page-head{margin-bottom:20px}.page-title{font-size:clamp(1.85rem,5vw,2.5rem);margin-bottom:8px}.page-sub{margin:0;color:var(--muted);max-width:36rem;font-size:.98rem}.grid-2{display:grid;gap:14px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding:16px}.panel+.panel{margin-top:14px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.panel-head h2{font-size:1.05rem}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;cursor:pointer;border-radius:999px;padding:11px 18px;font-weight:600;letter-spacing:-.01em;transition:transform .15s var(--ease),background .15s ease,box-shadow .15s ease,opacity .15s ease}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent-2);color:#ecfdf8;box-shadow:0 10px 24px #0a3d3840}.btn-primary:hover{background:#0c4f48}.btn-accent{background:var(--accent);color:#fff}.btn-ghost{background:#ffffff8c;border:1px solid var(--line-strong)}.btn-danger{background:#ffe8e4;color:var(--coral)}.btn-sm{padding:8px 13px;font-size:.9rem}.btn-icon{width:40px;height:40px;padding:0;display:grid;place-items:center;border-radius:14px}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:14px}.field label{font-size:.8rem;font-weight:600;color:var(--ink-2);letter-spacing:.01em}.field input,.field textarea,.field select{border:1px solid var(--line-strong);background:var(--surface-2);border-radius:var(--r-sm);padding:12px 13px;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--accent);box-shadow:0 0 0 4px #0d948826}.field textarea{min-height:96px;resize:vertical}.chip{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:999px;background:var(--accent-soft);color:var(--accent-2);font-size:.75rem;font-weight:700;letter-spacing:.01em}.chip.warn{background:#ffedd5;color:var(--amber)}.chip.ok{background:#dcfce7;color:var(--ok)}.chip.muted{background:#0c1f1c0f;color:var(--muted)}.chip.coral{background:#ffe8e4;color:var(--coral)}.desktop-nav{display:none;gap:4px;background:#ffffff73;padding:4px;border-radius:999px;border:1px solid var(--line)}.desktop-nav a{padding:8px 14px;border-radius:999px;font-weight:600;font-size:.9rem;color:var(--ink-2);transition:background .2s ease,color .2s ease}.desktop-nav a.active{background:var(--accent-2);color:#fff}.topbar-actions{flex-shrink:0;gap:8px}.bottom-nav{position:fixed;left:10px;right:10px;bottom:calc(8px + var(--safe-b));z-index:40;display:none;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;padding:8px;background:#ffffffe0;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(20px) saturate(1.3);backdrop-filter:blur(20px) saturate(1.3)}.bottom-nav a{display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 4px;border-radius:16px;color:var(--muted);font-size:.68rem;font-weight:700;transition:background .2s var(--ease),color .2s ease,transform .2s var(--ease)}.bottom-nav a.active{background:var(--accent-soft);color:var(--accent-2);transform:translateY(-1px)}.bottom-nav svg{width:22px;height:22px}.list{display:flex;flex-direction:column;gap:10px}.list-item{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;padding:14px;border-radius:var(--r-sm);background:#ffffff9e;border:1px solid var(--line);transition:border-color .15s ease,transform .15s var(--ease),box-shadow .15s ease}a.list-item:hover,button.list-item:hover{border-color:#0d948866;box-shadow:var(--shadow-sm);transform:translateY(-1px)}.list-item.done{opacity:.55}.list-item h3{font-size:1.02rem;margin-bottom:4px;font-family:var(--font-b);font-weight:700;letter-spacing:-.02em}.meta{color:var(--muted);font-size:.86rem;line-height:1.4}.error{color:#9f1239;background:#ffe4e6;border-radius:var(--r-sm);padding:12px 14px;margin-bottom:14px;font-weight:550}.empty{text-align:center;color:var(--muted);padding:36px 16px}.empty strong{display:block;color:var(--ink-2);font-family:var(--font-d);font-size:1.15rem;margin-bottom:6px}.avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;background:var(--accent-soft);display:grid;place-items:center;font-weight:800;color:var(--accent-2);overflow:hidden;flex-shrink:0}.check{width:24px;height:24px;border-radius:8px;border:2px solid var(--accent);display:grid;place-items:center;flex-shrink:0;background:#fff;cursor:pointer;transition:background .15s ease,transform .15s var(--ease)}.check:active{transform:scale(.92)}.check.on{background:var(--accent);color:#fff;border-color:var(--accent)}.cal-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.cal-header h2{font-size:1.2rem;text-transform:capitalize}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.cal-dow{text-align:center;font-size:.7rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:2px 0 8px}.cal-day{aspect-ratio:1;border:1px solid transparent;border-radius:16px;background:transparent;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:9px;gap:5px;font-weight:600;transition:background .15s ease,transform .15s var(--ease)}.cal-day:hover{background:#ffffffa6}.cal-day:active{transform:scale(.94)}.cal-day.outside{opacity:.32}.cal-day.today{border-color:#0d94888c}.cal-day.selected{background:var(--accent-2);color:#fff;box-shadow:0 10px 22px #0a3d3847}.cal-num{font-weight:700}.cal-marks{display:flex;gap:4px;min-height:6px}.cal-day .dot{width:6px;height:6px;border-radius:50%}.cal-day .dot.event{background:var(--accent)}.cal-day .dot.deadline{background:var(--coral)}.cal-day.has-deadline:not(.selected){background:#e85d4c1f;border-color:#e85d4c59;color:#9f1239}.cal-day.selected .dot.event{background:#99f6e4}.cal-day.selected .dot.deadline{background:#fecaca}.cal-day.selected.has-deadline{background:#9f1239;box-shadow:0 10px 22px #9f123947}.planner-layout{display:grid;gap:14px}@media(min-width:900px){.planner-layout:not(.day-mode){grid-template-columns:1.25fr .85fr;align-items:start}}.deadline-banner{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:14px;padding:14px 16px;border-radius:var(--r);background:linear-gradient(135deg,#ffe4e6,#ffedd5);border:1px solid rgba(232,93,76,.35);color:#9f1239;font-size:.95rem}.deadline-banner strong{font-family:var(--font-d);font-size:1.05rem}.deadline-warn{margin-bottom:14px;padding:12px 14px;border-radius:var(--r-sm);background:#ffe4e6;color:#9f1239;font-weight:600;font-size:.92rem}.deadline-warn.soft{background:#ffedd5;color:#9a3412}.side-block+.side-block{margin-top:18px}.side-title{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 10px;font-family:var(--font-b);font-weight:700}.deadline-item{border-color:#e85d4c59!important;background:#ffe4e673!important}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.week-col{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:#ffffff8c;border-radius:16px;padding:10px 8px;min-height:160px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:8px;transition:border-color .15s ease,transform .15s var(--ease),background .15s ease}.week-col:hover{border-color:#0d948866;transform:translateY(-1px)}.week-col.today{border-color:var(--accent)}.week-col.selected{background:var(--accent-2);color:#fff;border-color:var(--accent-2)}.week-col.has-deadline:not(.selected){border-color:#e85d4c80;background:#ffe4e673}.week-col.selected.has-deadline{background:#9f1239;border-color:#9f1239}.week-col-head{display:flex;flex-direction:column;gap:2px}.week-dow{font-size:.7rem;font-weight:700;text-transform:uppercase;opacity:.7}.week-num{font-family:var(--font-d);font-size:1.25rem;font-weight:800}.week-col-body{display:flex;flex-direction:column;gap:4px;flex:1}.week-pill{display:block;font-size:.68rem;font-weight:650;padding:4px 6px;border-radius:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.week-pill.event{background:var(--accent-soft);color:var(--accent-2)}.week-pill.deadline{background:#fecaca;color:#9f1239}.week-col.selected .week-pill.event{background:#fff3;color:#fff}.week-col.selected .week-pill.deadline{background:#fecaca59;color:#fff}.week-more{font-size:.75rem;opacity:.7;font-weight:700}@media(max-width:899px){.week-grid{grid-template-columns:1fr}.week-col{min-height:0;flex-direction:row;align-items:flex-start;gap:12px}.week-col-head{min-width:48px}.week-col-body{flex-direction:row;flex-wrap:wrap}}.day-agenda{margin-top:4px}.seg{display:inline-flex;gap:4px;padding:4px;background:#ffffff80;border:1px solid var(--line);border-radius:999px;margin-bottom:14px}.seg button{border:none;background:transparent;border-radius:999px;padding:8px 14px;font-weight:600;cursor:pointer;color:var(--muted)}.seg button.on{background:var(--accent-2);color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#0818167a;display:flex;align-items:flex-start;justify-content:center;overflow-y:auto;overscroll-behavior:contain;padding:max(16px,4vh) 12px max(16px,4vh);animation:fade .2s ease}@keyframes fade{0%{opacity:0}to{opacity:1}}.modal{width:min(520px,100%);margin:auto 0;max-height:none;overflow:visible;background:#f7fcfa;border-radius:24px;padding:18px;box-shadow:var(--shadow);animation:modal-in .28s var(--ease);border:1px solid var(--line);flex-shrink:0}@keyframes modal-in{0%{transform:translateY(12px);opacity:0}to{transform:none;opacity:1}}.login-screen{min-height:100dvh;display:grid;place-items:center;padding:28px 18px;position:relative;overflow:hidden}.login-screen:before{content:"";position:absolute;inset:-20% -10% auto;height:55%;background:radial-gradient(circle at 30% 40%,rgba(13,148,136,.35),transparent 45%),radial-gradient(circle at 75% 20%,rgba(232,93,76,.2),transparent 40%);pointer-events:none;animation:drift 12s ease-in-out infinite alternate}@keyframes drift{0%{transform:translateY(0) scale(1)}to{transform:translateY(18px) scale(1.05)}}.login-hero{width:min(420px,100%);text-align:center;position:relative;z-index:1;animation:rise .65s var(--ease) both}.login-hero .brand{font-size:clamp(3rem,12vw,4.2rem);line-height:.92;margin-bottom:16px}.login-hero p{color:var(--ink-2);margin:0 0 28px;font-size:1.05rem;line-height:1.5}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:28px;padding:22px 18px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.tg-login{display:flex;flex-direction:column;align-items:center;gap:12px}.tg-login-btn{-moz-appearance:none;appearance:none;-webkit-appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;width:100%;max-width:280px;padding:0 22px;border:0;outline:none;border-radius:14px;background:#2aabee;color:#fff;font-family:var(--font-b);font-size:1rem;font-weight:700;letter-spacing:.01em;cursor:pointer;box-shadow:0 10px 24px #2aabee47;transition:transform .15s var(--ease),background .15s ease,box-shadow .15s ease;isolation:isolate;overflow:hidden;position:relative;z-index:1}.tg-login-btn:hover:not(:disabled){background:#229ed9;transform:translateY(-1px);box-shadow:0 14px 28px #2aabee57}.tg-login-btn:active:not(:disabled){transform:translateY(0)}.tg-login-btn:disabled{opacity:.75;cursor:wait}.tg-login-btn svg{flex-shrink:0}.login-hint{margin:0;font-size:.85rem;color:var(--muted)}.login-help-details{width:100%;margin-top:4px;text-align:left;color:var(--muted);font-size:.85rem}.login-help-details summary{cursor:pointer;list-style:none;text-align:center}.login-help-details summary::-webkit-details-marker{display:none}.login-steps-title{font-family:var(--font-d);font-size:1.15rem;margin:0 0 10px;text-align:left}.login-steps{margin:0 0 18px;padding-left:1.2rem;text-align:left;color:var(--ink-2);font-size:.95rem;line-height:1.45}.login-steps li+li{margin-top:6px}.login-help{background:#0d948814;border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 14px;font-size:.92rem}.login-help code{font-size:.85em;background:#0c1f1c0f;padding:2px 6px;border-radius:6px}.login-help a:not(.btn){color:var(--accent-2);text-decoration:underline}.detail-hero{margin-bottom:18px}.back-link{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-weight:600;font-size:.9rem;margin-bottom:14px}.prose{white-space:pre-wrap;color:var(--ink-2);margin:0;line-height:1.55}.skeleton{height:14px;border-radius:8px;background:linear-gradient(90deg,#fff6,#ffffffd9,#fff6);background-size:200% 100%;animation:shimmer 1.2s linear infinite}@keyframes shimmer{to{background-position:-200% 0}}.ss{position:relative}.ss-input{width:100%;border:1px solid var(--line-strong);background:var(--surface-2);border-radius:var(--r-sm);padding:12px 36px 12px 13px;outline:none;min-height:48px;transition:border-color .15s ease,box-shadow .15s ease}.ss.open .ss-input,.ss-input:focus{border-color:var(--accent);box-shadow:0 0 0 4px #0d948826}.ss-chevron{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none;font-size:.85rem}.ss-list{position:absolute;z-index:20;left:0;right:0;top:calc(100% + 6px);margin:0;padding:6px;list-style:none;max-height:240px;overflow:auto;background:#fff;border:1px solid var(--line-strong);border-radius:var(--r-sm);box-shadow:var(--shadow)}.ss-option{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;border:none;background:transparent;border-radius:10px;padding:10px 12px;cursor:pointer;font-weight:600}.ss-option:hover,.ss-option.active{background:var(--accent-soft);color:var(--accent-2)}.ss-option.muted{color:var(--muted);font-weight:500}.ss-hint{font-size:.8rem;font-weight:500;color:var(--muted)}.ss-empty{padding:12px;color:var(--muted);font-size:.9rem}.search-bar{display:flex;gap:10px;margin-bottom:14px}.search-bar input{flex:1;border:1px solid var(--line-strong);background:#ffffffbf;border-radius:999px;padding:12px 16px;outline:none;min-height:46px}.search-bar input:focus{border-color:var(--accent);box-shadow:0 0 0 4px #0d94881f}.dt-row{display:grid;grid-template-columns:1.2fr .8fr;gap:10px}.dt-input{border:1px solid var(--line-strong);background:var(--surface-2);border-radius:var(--r-sm);padding:12px 13px;outline:none;min-height:48px;color:var(--ink);transition:border-color .15s ease,box-shadow .15s ease}.dt-input:focus{border-color:var(--accent);box-shadow:0 0 0 4px #0d948826}.dt-input::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.65;padding:4px;border-radius:6px}.dt-input::-webkit-calendar-picker-indicator:hover{opacity:1;background:var(--accent-soft)}.access-grant{display:grid;gap:12px}.access-grant .field{margin:0}.check-row{display:inline-flex;align-items:center;gap:8px;font-size:.92rem;color:var(--ink-2);cursor:pointer;-webkit-user-select:none;user-select:none}.access-row{align-items:flex-start}.access-row.dimmed{opacity:.72}.access-actions{display:flex;flex-direction:column;gap:6px;flex-shrink:0}@media(min-width:640px){.access-actions{flex-direction:row;flex-wrap:wrap;justify-content:flex-end}}@media(max-width:899px){.bottom-nav{display:grid}.desktop-nav{display:none!important}.app-shell{padding-bottom:calc(var(--nav) + var(--safe-b))}}@media(min-width:900px){.bottom-nav{display:none!important}.desktop-nav{display:flex!important}.app-shell{padding-bottom:32px}.page{width:min(1120px,100%);padding:28px 28px 40px}.page-title{font-size:2.4rem}.grid-2{grid-template-columns:1.2fr .8fr;gap:18px;align-items:start}.panel{padding:20px}.topbar{padding-left:28px;padding-right:28px}.cal-day{min-height:64px;aspect-ratio:auto;padding:12px 0 10px;border-radius:16px}.list-item{padding:16px 18px}.modal{padding:22px}}
