@font-face{font-family:Manrope;font-style:normal;font-weight:400 800;font-display:swap;src:url(/assets/fonts/manrope-cyrillic-400-800.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:400 800;font-display:swap;src:url(/assets/fonts/manrope-latin-400-800.woff2)format("woff2");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:IBM Plex Sans Arabic;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/plexarabic-arabic-400.woff2)format("woff2");unicode-range:U+6??,U+750-77F,U+870-88E,U+890-891,U+897-8E1,U+8E3-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/plexarabic-arabic-500.woff2)format("woff2");unicode-range:U+6??,U+750-77F,U+870-88E,U+890-891,U+897-8E1,U+8E3-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/plexarabic-arabic-600.woff2)format("woff2");unicode-range:U+6??,U+750-77F,U+870-88E,U+890-891,U+897-8E1,U+8E3-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/plexarabic-arabic-700.woff2)format("woff2");unicode-range:U+6??,U+750-77F,U+870-88E,U+890-891,U+897-8E1,U+8E3-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1}@font-face{font-family:Amiri;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/amiri-arabic-400-normal.woff2)format("woff2");unicode-range:U+6??,U+750-77F,U+FB50-FDFF,U+FE70-FEFC}@font-face{font-family:Amiri;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/amiri-arabic-700-normal.woff2)format("woff2");unicode-range:U+6??,U+750-77F,U+FB50-FDFF,U+FE70-FEFC}@font-face{font-family:Amiri;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/amiri-latin-400-normal.woff2)format("woff2");unicode-range:U+??,U+2000-206F,U+20AC}@font-face{font-family:Amiri;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/amiri-latin-700-normal.woff2)format("woff2");unicode-range:U+??,U+2000-206F,U+20AC}:root{--bg:#f8fafc;--surface:#fff;--surface-2:#f1f5f9;--surface-3:#e2e8f0;--ink:#0f172a;--ink-muted:#64748b;--border:#e2e8f0;--border-strong:#cbd5e1;--accent:#b48316;--accent-strong:#92670d;--on-accent:#fff;--accent-soft:#b4831617;--gradient-primary:linear-gradient(135deg, #a16207 0%, #ca8a04 100%);--gradient-warm:linear-gradient(135deg, #fff 0%, #f8fafc 100%);--gradient-accent-soft:linear-gradient(135deg, #b483160f 0%, #b4831624 100%);--glass-bg:#ffffffd1;--glass-bg-strong:#ffffffeb;--glass-border:#e2e8f0cc;--glass-blur:16px;--danger:#e11d48;--danger-soft:#e11d4814;--success:#059669;--success-soft:#05966914;--warn:#d97706;--warn-soft:#d9770614;--none-subject:#94a3b8;--gold:#b48316;--gold-soft:#b483161a;--hl:#d4af3733;--hl-mint:#34d39940;--hl-rose:#fb718540;--hl-sky:#38bdf840;--hl-backlog:var(--hl-rose);--hl-done:var(--hl-mint);--ring:#b48316;--notebook-grid:transparent;--notebook-margin:transparent;--shadow-1:0 1px 3px #0f172a0d, 0 1px 2px #0f172a0a;--shadow-2:0 4px 16px #0f172a14;--shadow-3:0 12px 32px #0f172a1f;--shadow-glow:0 2px 10px #b4831633;--shadow-card-hover:0 6px 20px #0f172a17, 0 0 0 1px #b483162e;--scrim:#0f172a73;--radius:12px;--radius-s:8px;--radius-xs:6px;--radius-l:16px;--radius-xl:20px;--content-w:740px;--font:"Manrope", "IBM Plex Sans Arabic", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-display:"Manrope", "IBM Plex Sans Arabic", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-spring:cubic-bezier(.34, 1.4, .64, 1);--t-fast:.14s;--t-med:.2s;--t-sheet:.26s;--header-h:56px;--nav-h:60px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=dark]{--bg:#090a0d;--surface:#111317;--surface-2:#181a20;--surface-3:#22252e;--ink:#f4f4f6;--ink-muted:#9da3af;--border:#d4af371f;--border-strong:#d4af3747;--accent:#d4af37;--accent-strong:#e6c35c;--on-accent:#090a0d;--accent-soft:#d4af371f;--gradient-primary:linear-gradient(135deg, #c59b27 0%, #d4af37 45%, #f3c766 100%);--gradient-warm:linear-gradient(135deg, #111317 0%, #181a20 100%);--gradient-accent-soft:linear-gradient(135deg, #d4af371a 0%, #d4af3733 100%);--glass-bg:#111317d6;--glass-bg-strong:#0d0e12f2;--glass-border:#d4af3724;--danger:#f43f5e;--danger-soft:#f43f5e24;--success:#10b981;--success-soft:#10b98124;--warn:#f59e0b;--warn-soft:#f59e0b24;--none-subject:#64748b;--gold:#d4af37;--gold-soft:#d4af3729;--hl:#d4af3726;--hl-mint:#10b9812e;--hl-rose:#f43f5e2e;--hl-sky:#38bdf82e;--hl-backlog:var(--hl-rose);--hl-done:var(--hl-mint);--ring:#d4af37;--notebook-grid:transparent;--notebook-margin:transparent;--shadow-1:0 1px 3px #0006, 0 1px 2px #0000004d;--shadow-2:0 4px 16px #00000080;--shadow-3:0 12px 36px #000000a6;--shadow-glow:0 2px 14px #d4af3747;--shadow-card-hover:0 8px 24px #0000008c, 0 0 0 1px #d4af3740;--scrim:#000000bf;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font);color:var(--ink);background-color:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100dvh;transition:background-color var(--t-med) ease, color var(--t-med) ease;overscroll-behavior-y:none;background-image:radial-gradient(90% 60% at 50% -60px,#d4af3714 0%,#0000 70%),radial-gradient(900px at 90% 90%,#d4af3709 0%,#0000 65%),radial-gradient(600px at 10% 45%,#ffffff03 0%,#0000 60%);background-repeat:no-repeat;background-attachment:fixed;margin:0;font-size:15px;line-height:1.6}:root:not([data-theme=dark]) body{background-image:radial-gradient(90% 60% at 50% -60px,#b483160f 0%,#0000 70%),radial-gradient(900px at 90% 90%,#b4831608 0%,#0000 65%)}img{max-width:100%;display:block}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0}input,textarea,select{font:inherit;color:inherit}h1,h2,h3{line-height:1.25;font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-weight:700}p{margin:0}.app{flex-direction:column;min-height:100dvh;display:flex}.header{z-index:30;height:var(--header-h);padding-inline:max(14px, env(safe-area-inset-left)) max(14px, env(safe-area-inset-right));background:var(--glass-bg-strong);-webkit-backdrop-filter:blur(var(--glass-blur));border-bottom:1px solid var(--glass-border);transition:background var(--t-med) ease;align-items:center;gap:8px;display:flex;position:sticky;top:0}.header-actions{align-items:center;gap:6px;display:flex;position:relative}.desktop-nav{display:none}.header .brand{align-items:center;gap:10px;min-width:0;margin-inline-end:auto;display:flex}.brand-crest{background:var(--gradient-primary);width:32px;height:32px;color:var(--on-accent);box-shadow:0 2px 8px color-mix(in srgb, var(--accent) 30%, transparent);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.brand-titles{flex-direction:column;line-height:1.15;display:flex}.header .brand .name{font-family:var(--font-display);letter-spacing:-.01em;white-space:nowrap;color:var(--ink);font-size:17.5px;font-weight:700}.brand-tag{color:var(--accent);letter-spacing:.02em;font-size:10px;font-weight:600}.icon-btn{min-width:44px;min-height:44px;color:var(--ink);transition:background-color var(--t-fast) ease, transform var(--t-fast) var(--ease-out);border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:0 10px;display:inline-flex}.icon-btn:hover{background:var(--surface-2)}.icon-btn:active{transform:scale(.94)}.icon-btn .icon-label{font-size:13px;font-weight:500}.pill-btn{border:1px solid var(--glass-border);background:var(--glass-bg);-webkit-backdrop-filter:blur(8px);box-shadow:var(--shadow-1)}.main{width:100%;max-width:var(--content-w);padding:16px 16px calc(var(--nav-h) + 96px + env(safe-area-inset-bottom));flex:1;margin-inline:auto}.page{display:none}.page.active{animation:page-in var(--t-med) var(--ease-out) both;display:block}.page.active.from-next{animation-name:page-in-fwd}.page.active.from-prev{animation-name:page-in-back}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}}@keyframes page-in-fwd{0%{opacity:0;transform:translate(22px)}}@keyframes page-in-back{0%{opacity:0;transform:translate(-22px)}}[dir=rtl] .page.active.from-next{animation-name:page-in-back}[dir=rtl] .page.active.from-prev{animation-name:page-in-fwd}.stagger>*{animation:rise-in var(--t-med) var(--ease-out) both}.stagger>:first-child{animation-delay:0s}.stagger>:nth-child(2){animation-delay:40ms}.stagger>:nth-child(3){animation-delay:80ms}.stagger>:nth-child(4){animation-delay:.12s}.stagger>:nth-child(5){animation-delay:.16s}.stagger>:nth-child(6){animation-delay:.2s}.stagger>:nth-child(n+7){animation-delay:.24s}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)}}.bottom-nav{z-index:40;inset-inline:0;height:calc(var(--nav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--glass-bg-strong);-webkit-backdrop-filter:blur(var(--glass-blur));border-top:1px solid var(--glass-border);grid-auto-columns:1fr;grid-auto-flow:column;align-items:stretch;display:grid;position:fixed;bottom:0}.nav-tab{color:var(--ink-muted);letter-spacing:.02em;min-height:44px;transition:color var(--t-fast) ease, background-color var(--t-fast) ease, transform var(--t-fast) var(--ease-out);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:3px;margin:6px 4px;font-size:11.5px;font-weight:500;display:flex;position:relative}.nav-tab svg{transition:transform var(--t-fast) var(--ease-out)}.nav-tab:active{transform:scale(.92)}.nav-tab[aria-current=page]{color:var(--accent);background:var(--accent-soft)}.nav-tab[aria-current=page] svg{transform:translateY(-1px)scale(1.06)}.nav-tab .nav-dot{display:none}.nav-hub-btn{z-index:10;background:0 0;border:none;justify-content:center;align-items:center;margin:0;padding:0;display:flex;position:relative}.hub-icon-wrap{background:var(--gradient-primary);width:44px;height:44px;color:var(--on-accent);box-shadow:var(--shadow-1);transition:transform var(--t-fast) var(--ease-out), box-shadow var(--t-fast) ease;border-radius:12px;justify-content:center;align-items:center;display:flex}.nav-hub-btn:hover .hub-icon-wrap{box-shadow:var(--shadow-glow);transform:scale(1.05)}.nav-hub-btn:active .hub-icon-wrap{transform:scale(.92)}.hub-menu-grid{grid-template-columns:repeat(3,1fr);gap:16px;padding:16px 0;display:grid}.hub-menu-item{color:var(--ink);cursor:pointer;transition:background-color var(--t-fast) ease, transform var(--t-fast) var(--ease-out);background:0 0;border:none;border-radius:16px;flex-direction:column;align-items:center;gap:8px;padding:10px 8px;display:flex}.hub-menu-item:hover{background:var(--surface-2)}.hub-menu-item:active{transform:scale(.94)}.hub-menu-item .icon-wrap{background:var(--gradient-accent-soft);width:50px;height:50px;color:var(--accent);transition:transform var(--t-fast) var(--ease-out);border-radius:50%;justify-content:center;align-items:center;display:flex}.hub-menu-item:hover .icon-wrap{transform:scale(1.06)}.hub-menu-item span{font-size:13px;font-weight:500}.hub-popover-scrim{-webkit-backdrop-filter:blur(3px);z-index:45;opacity:0;pointer-events:none;transition:opacity var(--t-fast) ease;background:#0003;position:fixed;inset:0}.hub-popover-scrim.open{opacity:1;pointer-events:auto}.hub-popover{bottom:calc(var(--nav-h) + 24px + env(safe-area-inset-bottom));transform-origin:bottom;background:var(--glass-bg-strong);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-xl);z-index:50;opacity:0;pointer-events:none;width:90%;max-width:320px;box-shadow:var(--shadow-3);transition:transform .3s var(--ease-spring), opacity .2s ease;padding:18px;position:fixed;left:50%;transform:translate(-50%)translateY(20px)scale(.95)}.hub-popover.open{opacity:1;pointer-events:auto;transform:translate(-50%)translateY(0)scale(1)}.hub-popover .hub-menu-grid{grid-template-columns:repeat(3,1fr);gap:16px;padding:8px 0;display:grid}.stats-grid{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.stat-card{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-1);color:var(--ink);transition:transform var(--t-fast) var(--ease-out), box-shadow var(--t-fast) ease, border-color var(--t-fast) ease;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 12px 10px;display:flex}.stat-card:active{transform:scale(.97)}.stat-card svg{color:var(--accent);margin-bottom:6px}.stat-card .stat-v{font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:22px;font-weight:700;line-height:1}.stat-card .stat-l{color:var(--ink-muted);font-size:11px}.stat-card.tone-ok svg{color:var(--success)}.stat-card.tone-late svg,.stat-card.tone-late .stat-v{color:var(--danger)}@media (width<=359px){.stats-grid{grid-template-columns:repeat(2,1fr)}}.n-imgs .img-ph{background:color-mix(in srgb, var(--ink) 8%, transparent);border-radius:8px;width:42px;height:42px}.img-thumb .img-ph{width:100%;height:100%;display:block}.brand-mark{align-items:center;gap:7px;font-size:14.5px;font-weight:600;display:inline-flex}.brand-mark svg{color:var(--accent)}.fab[hidden]{display:none}.fab{z-index:35;inset-inline-end:18px;bottom:calc(var(--nav-h) + 18px + env(safe-area-inset-bottom));background:var(--gradient-primary);width:50px;height:50px;color:var(--on-accent);box-shadow:var(--shadow-2);transition:transform var(--t-fast) var(--ease-out), box-shadow var(--t-fast) ease;border-radius:14px;justify-content:center;align-items:center;display:flex;position:fixed}.fab:hover{box-shadow:var(--shadow-3);transform:translateY(-2px)scale(1.03)}.fab:active{transform:scale(.94)}.fab{animation:fab-in .3s var(--ease-spring)}@keyframes fab-in{0%{opacity:0;transform:scale(.5)rotate(-15deg)}to{transform:scale(1)rotate(0)}}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}[dir=rtl] *{letter-spacing:normal!important}[dir=rtl] body{line-height:1.72}[dir=rtl] h1,[dir=rtl] h2,[dir=rtl] h3{line-height:1.45}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width>=768px){body{font-size:15px}.header{justify-content:space-between;height:60px;padding-inline:24px}.header .brand{margin-inline-end:0}.desktop-nav{border-radius:var(--radius-s);background:var(--surface-2);border:1px solid var(--border);align-items:center;gap:4px;padding:4px 6px;display:flex;box-shadow:inset 0 1px 2px #00000040,0 1px 3px #0003}.desktop-nav-link{border-radius:var(--radius-xs);color:var(--ink-muted);cursor:pointer;transition:all var(--t-fast) ease;white-space:nowrap;background:0 0;border:none;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:500;display:inline-flex}.desktop-nav-link:hover{color:var(--ink);background:color-mix(in srgb, var(--surface) 60%, transparent)}.desktop-nav-link.is-active{color:var(--accent);background:var(--surface);box-shadow:0 1px 4px #00000040, 0 0 0 1px var(--border-strong);border:1px solid var(--border-strong);font-weight:600}.desktop-nav-link.is-active svg{color:var(--accent)}.main{max-width:860px;padding-top:28px;padding-bottom:48px}.bottom-nav,.fab{display:none!important}.stat-card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}}.progress-ring{justify-content:center;align-items:center;display:inline-flex;position:relative}.progress-ring svg{transform:rotate(-90deg)}.progress-ring .ring-bg{stroke:var(--surface-2)}.progress-ring .ring-fill{stroke:var(--success);stroke-linecap:round;transition:stroke-dashoffset .6s var(--ease-out)}.progress-ring .ring-label{font-variant-numeric:tabular-nums;font-size:13px;font-weight:700;position:absolute}.motiv-badge{background:var(--gold-soft);color:var(--gold);border:1px solid color-mix(in srgb, var(--gold) 25%, var(--border));animation:badge-in .4s var(--ease-spring) both;border-radius:999px;align-items:center;gap:6px;padding:6px 14px;font-size:13px;font-weight:600;display:inline-flex}@keyframes badge-in{0%{opacity:0;transform:scale(.8)}}.streak-wrap{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-1);border-radius:999px;align-items:center;gap:7px;padding:6px 14px;font-size:13px;font-weight:600;display:inline-flex}.streak-wrap .streak-fire{font-size:16px;line-height:1}.streak-wrap .streak-num{font-variant-numeric:tabular-nums;color:var(--accent)}.btn{border-radius:var(--radius-s);min-height:44px;transition:background-color var(--t-fast) ease, transform var(--t-fast) var(--ease-out), border-color var(--t-fast) ease, opacity var(--t-fast) ease, box-shadow var(--t-fast) ease;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-size:14.5px;font-weight:500;display:inline-flex}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--gradient-primary);color:var(--on-accent);box-shadow:var(--shadow-glow)}.btn-primary:hover{box-shadow:0 6px 22px color-mix(in srgb, var(--accent) 35%, transparent)}.btn-ghost{border-color:var(--border);background:var(--surface);color:var(--ink)}.btn-ghost:hover{background:var(--surface-2);border-color:var(--border-strong)}.btn-danger{background:var(--danger-soft);color:var(--danger);border-color:color-mix(in srgb, var(--danger) 25%, transparent)}.btn-danger:hover{background:color-mix(in srgb, var(--danger) 18%, var(--surface))}.btn-block{width:100%}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-1);transition:transform var(--t-fast) var(--ease-out), box-shadow var(--t-fast) ease, border-color var(--t-fast) ease;position:relative}.card-pad{padding:18px}@media (hover:hover){.card:hover{box-shadow:var(--shadow-2);border-color:color-mix(in srgb, var(--accent) 30%, var(--border))}.card:hover:before{background:var(--accent)}}.section-title{letter-spacing:.02em;color:var(--ink);align-items:center;gap:8px;margin:26px 2px 10px;font-size:13.5px;font-weight:700;display:flex}.section-title svg{color:var(--accent)}.section-title:first-child{margin-top:4px}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.form-grid-2{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=520px){.form-grid-2{grid-template-columns:1fr;gap:0}}.field-label-row{justify-content:space-between;align-items:center;min-height:20px;display:flex}.field-label-row label{margin-bottom:0}.toggle-label{color:var(--ink-muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:12px;display:inline-flex}.toggle-label input[type=checkbox]{accent-color:var(--accent);cursor:pointer;width:14px;height:14px}.subject-select-wrap select{cursor:pointer}.task-progress-box{margin-top:2px}.field>label{letter-spacing:.02em;color:var(--ink-muted);font-size:13px;font-weight:500}.input,.textarea,.select{border-radius:var(--radius-s);border:1.5px solid var(--border);background:var(--surface);width:100%;min-height:46px;transition:border-color var(--t-fast) ease, box-shadow var(--t-med) ease, background-color var(--t-fast) ease;padding:10px 13px}.textarea{resize:vertical;background-image:none;min-height:120px;line-height:1.5}.textarea.compact{min-height:84px}.input:focus,.textarea:focus,.select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft), 0 2px 8px color-mix(in srgb, var(--accent) 10%, transparent);background:var(--surface);outline:none}.input[aria-invalid=true],.textarea[aria-invalid=true]{border-color:var(--danger)}.field-error{color:var(--danger);min-height:1em;font-size:12.5px}input[type=date]{direction:ltr}.segmented{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;grid-auto-columns:1fr;grid-auto-flow:column;gap:4px;padding:4px;display:grid;box-shadow:inset 0 1px 2px #0000000a}.segmented button{min-height:38px;color:var(--ink-muted);transition:background-color var(--t-fast) ease, color var(--t-fast) ease, box-shadow var(--t-fast) ease, transform var(--t-fast) var(--ease-out);border-radius:999px;justify-content:center;align-items:center;gap:8px;font-size:13px;font-weight:600;display:inline-flex}.segmented button:hover:not([aria-pressed=true]){color:var(--ink);background:color-mix(in srgb, var(--surface) 40%, transparent)}.segmented button:active{transform:scale(.97)}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:0 2px 8px #00000014,0 1px 2px #0000000a}[data-theme=dark] .segmented button[aria-pressed=true]{background:color-mix(in srgb, var(--surface) 92%, #383125);box-shadow:0 2px 10px #00000059}.chips-row{flex-wrap:wrap;gap:8px;display:flex}.chips-row.scroll{scrollbar-width:none;flex-wrap:nowrap;padding-bottom:6px;overflow-x:auto}.chips-row.scroll::-webkit-scrollbar{display:none}.chip{border:1.5px solid var(--border);background:var(--surface);min-height:38px;color:var(--ink-muted);white-space:nowrap;transition:border-color var(--t-fast) ease, background-color var(--t-fast) ease, color var(--t-fast) ease, transform var(--t-fast) var(--ease-out);border-radius:999px;align-items:center;gap:7px;padding:6px 13px;font-size:13.5px;font-weight:500;display:inline-flex}.chip:active{transform:scale(.96)}.chip .dot{background:var(--chip-c,var(--none-subject));border-radius:50%;flex-shrink:0;width:10px;height:10px}.chip[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}.tag{background:color-mix(in srgb, var(--c,var(--none-subject)) 16%, var(--surface));border:1px solid color-mix(in srgb, var(--c,var(--none-subject)) 35%, var(--border));color:var(--ink);border-radius:999px;align-items:center;gap:6px;max-width:160px;padding:3px 10px;font-size:12px;font-weight:500;display:inline-flex}.tag .dot{background:var(--c,var(--none-subject));border-radius:50%;flex-shrink:0;width:8px;height:8px}.tag span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.badge{letter-spacing:.02em;border-radius:999px;align-items:center;gap:5px;padding:2.5px 9px;font-size:11.5px;font-weight:600;display:inline-flex}.badge-hard{background:color-mix(in srgb, var(--danger) 12%, var(--surface));border:1px solid color-mix(in srgb, var(--danger) 28%, transparent);color:var(--danger)}.badge-easy{background:color-mix(in srgb, var(--success) 12%, var(--surface));border:1px solid color-mix(in srgb, var(--success) 28%, transparent);color:var(--success)}.badge-light{background:color-mix(in srgb, var(--accent) 12%, var(--surface));border:1px solid color-mix(in srgb, var(--accent) 28%, transparent);color:var(--accent)}.sheet-scrim{z-index:60;background:var(--scrim);opacity:0;transition:opacity var(--t-sheet) ease;position:fixed;inset:0}.sheet{z-index:61;inset-inline:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:min(560px,100%);max-height:calc(100dvh - 48px);box-shadow:var(--shadow-3);transition:transform var(--t-sheet) var(--ease-out);padding-bottom:env(safe-area-inset-bottom);flex-direction:column;margin-inline:auto;display:flex;position:fixed;bottom:0;transform:translateY(100%)}.sheet.open{transform:translateY(0)}.sheet-scrim.open{opacity:1}.sheet-grab{background:var(--border-strong);border-radius:999px;flex-shrink:0;width:40px;height:4px;margin:10px auto 2px}.sheet-head{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:10px;padding:8px 18px 12px;display:flex}.sheet-head h2{letter-spacing:-.015em;color:var(--ink);margin-inline-end:auto;font-size:18px;font-weight:700;font-family:var(--font)!important}.sheet-body{overscroll-behavior:contain;padding:16px 18px 20px;overflow-y:auto}.sheet-foot{border-top:1px solid var(--border);flex-shrink:0;gap:10px;padding:12px 18px 16px;display:flex}.sheet-foot .btn{flex:1}@media (width>=640px){.sheet{opacity:0;border-radius:var(--radius-xl);max-height:min(86dvh,720px);top:50%;bottom:auto;transform:translateY(-46%)scale(.97)}.sheet.open{opacity:1;transform:translateY(-50%)scale(1)}.sheet-grab{display:none}}.toast-wrap{z-index:80;bottom:calc(var(--nav-h) + 16px + env(safe-area-inset-bottom));pointer-events:none;flex-direction:column;align-items:center;gap:8px;padding-inline:16px;display:flex;position:fixed;inset-inline:0}@media (width>=768px){.toast-wrap{bottom:24px}}.toast{background:var(--surface);color:var(--ink);border:1px solid var(--border-strong);box-shadow:var(--shadow-2);animation:toast-in var(--t-med) var(--ease-spring) both;border-radius:999px;align-items:center;gap:8px;max-width:100%;padding:10px 18px;font-size:13.5px;font-weight:500;display:inline-flex}.toast.error{background:var(--danger);border-color:var(--danger);color:#fff}.toast.leaving{animation:toast-out var(--t-med) ease both}@keyframes toast-in{0%{opacity:0;transform:translateY(14px)scale(.9)}}@keyframes toast-out{to{opacity:0;transform:translateY(6px)scale(.95)}}.cal-head{align-items:center;gap:6px;margin-bottom:10px;display:flex}.cal-title{margin-inline-end:auto;font-size:16px;font-weight:600}.cal-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.cal-grid.slide-fwd{animation:cal-slide-fwd .24s var(--ease-out) both}.cal-grid.slide-back{animation:cal-slide-back .24s var(--ease-out) both}@keyframes cal-slide-fwd{0%{opacity:0;transform:translate(16px)}}@keyframes cal-slide-back{0%{opacity:0;transform:translate(-16px)}}[dir=rtl] .cal-grid.slide-fwd{animation-name:cal-slide-back}[dir=rtl] .cal-grid.slide-back{animation-name:cal-slide-fwd}.cal-weekday{text-align:center;letter-spacing:.03em;color:var(--ink-muted);padding:4px 0 8px;font-size:11px;font-weight:500}.cal-weekday.we,.cal-day.we{color:color-mix(in srgb, var(--danger) 55%, var(--ink-muted))}.cal-day{aspect-ratio:1;font-variant-numeric:tabular-nums;min-height:42px;color:var(--ink);transition:background-color var(--t-fast) ease, transform var(--t-fast) var(--ease-out);border-radius:12px;justify-content:center;align-items:center;font-size:13.5px;display:flex;position:relative}.cal-day:hover{background:var(--surface-2)}.cal-day.pad{pointer-events:none}.cal-day.we:before{content:"";background:color-mix(in srgb, var(--danger) 4%, transparent);pointer-events:none;border-radius:9px;position:absolute;inset:2px}.cal-day.today{box-shadow:inset 0 0 0 2px var(--accent);color:var(--accent);font-weight:700}.cal-day.selected{background:var(--accent);color:var(--on-accent);box-shadow:0 2px 8px color-mix(in srgb, var(--accent) 35%, transparent);border-radius:10px;font-weight:600}.cal-day.selected:before{display:none}.cal-day.pop{animation:day-pop .24s var(--ease-out)}@keyframes day-pop{0%{transform:scale(.85)}60%{transform:scale(1.08)}to{transform:scale(1)}}.cal-dots{gap:3px;display:flex;position:absolute;bottom:5px}.cal-dots i{background:var(--d,var(--none-subject));width:5.5px;height:5.5px;box-shadow:0 0 0 1.5px color-mix(in srgb, var(--surface) 70%, transparent);border-radius:50%}.cal-grid.cal-animate .cal-dots i{animation:dot-pop var(--t-med) var(--ease-out) both}.cal-dots i.done{opacity:.35}.cal-day.selected .cal-dots i{background:var(--on-accent);opacity:.9;box-shadow:none}.cal-day.selected .cal-dots i.done{opacity:.45}.cal-dots .more{width:auto;height:auto;box-shadow:none;color:var(--ink-muted);background:0 0;font-size:8.5px;font-style:normal;font-weight:600;line-height:5px;animation:none}.cal-day.selected .cal-dots .more{color:var(--on-accent)}@keyframes dot-pop{0%{transform:scale(0)}}.task-card{background:var(--surface);border:1px solid color-mix(in srgb, var(--border) 75%, transparent);border-radius:var(--radius);transition:transform var(--t-fast) var(--ease-out), box-shadow var(--t-fast) ease, border-color var(--t-fast) ease, background-color var(--t-fast) ease;position:relative;box-shadow:0 2px 8px #0000000a,0 1px 2px #00000008}[data-theme=dark] .task-card{background:var(--surface);border-color:var(--border);box-shadow:var(--shadow-1)}@media (hover:hover){.task-card:hover{border-color:color-mix(in srgb, var(--accent) 40%, var(--border));box-shadow:0 8px 24px #00000014, 0 0 0 1px color-mix(in srgb, var(--accent) 15%, transparent);transform:translateY(-2px)}[data-theme=dark] .task-card:hover{border-color:color-mix(in srgb, var(--accent) 35%, #ffffff26);box-shadow:0 8px 28px #00000073, 0 0 16px color-mix(in srgb, var(--accent) 12%, transparent)}}.task-row{align-items:flex-start;gap:13px;padding:14px 16px;display:flex}.task-row+.task-row{margin-top:10px}.check{border:2px solid var(--border-strong);cursor:pointer;width:24px;height:24px;transition:all var(--t-fast) var(--ease-out);background:0 0;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;margin-top:2px;display:inline-flex;position:relative}.check:hover{border-color:var(--accent);background:var(--accent-soft);transform:scale(1.08)}.check:active{transform:scale(.92)}.check svg{stroke:#fff;stroke-dasharray:20;stroke-dashoffset:20px;width:16px;height:16px;transition:stroke-dashoffset .22s var(--ease-out) 30ms;position:absolute;inset:2px}.task-row.done .check{background:linear-gradient(135deg,#3f7a4e 0%,#2e5c3b 100%);border-color:#3f7a4e;box-shadow:0 2px 8px #3f7a4e59}.task-row.done .check svg{stroke-dashoffset:0}.task-row.just-done{animation:settle .26s var(--ease-out)}@keyframes settle{0%{transform:scale(1)}40%{transform:scale(.985)}to{transform:scale(1)}}.task-row .t-body{flex:1;min-width:0}.task-row .t-title{letter-spacing:-.01em;color:var(--ink);overflow-wrap:anywhere;text-align:start;transition:color var(--t-fast) ease;unicode-bidi:plaintext;font-size:15px;font-weight:600;line-height:1.35}.task-row .t-desc{color:var(--ink-muted);text-align:start;overflow-wrap:anywhere;-webkit-line-clamp:2;unicode-bidi:plaintext;-webkit-box-orient:vertical;margin-top:4px;font-size:13px;line-height:1.5;display:-webkit-box;overflow:hidden}.task-row.done{opacity:.65;background:color-mix(in srgb, var(--surface) 80%, var(--surface-2))}.task-row.done:hover{opacity:.85}.task-row.done .t-title{color:var(--ink-muted);text-decoration:line-through;text-decoration-thickness:1.5px}.task-row.done .t-desc{opacity:.75;text-decoration:line-through;text-decoration-thickness:1px}.t-links{flex-wrap:wrap;gap:7px;margin-top:7px;display:flex}.t-link-btn{background:color-mix(in srgb, var(--accent) 12%, var(--surface));border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);color:var(--accent);cursor:pointer;max-width:100%;transition:all var(--t-fast) var(--ease-out);border-radius:999px;align-items:center;gap:6px;padding:4.5px 12px;font-size:12px;font-weight:600;text-decoration:none;display:inline-flex;box-shadow:0 1px 3px #0000000a}[data-theme=dark] .t-link-btn{background:color-mix(in srgb, var(--accent) 15%, var(--surface-2));border-color:color-mix(in srgb, var(--accent) 38%, transparent);color:var(--accent-strong)}.t-link-btn:hover{background:color-mix(in srgb, var(--accent) 22%, var(--surface));border-color:var(--accent);box-shadow:0 4px 12px color-mix(in srgb, var(--accent) 25%, transparent);color:var(--accent-strong);transform:translateY(-1px)}.t-link-btn:active{transform:scale(.97)}.t-link-btn.is-youtube{background:color-mix(in srgb, #e5484d 10%, var(--surface));color:#e5484d;border-color:#e5484d4d}[data-theme=dark] .t-link-btn.is-youtube{background:color-mix(in srgb, #e5484d 15%, var(--surface-2));color:#ff787d;border-color:#e5484d59}.t-link-btn.is-youtube:hover{background:color-mix(in srgb, #e5484d 20%, var(--surface));color:#ff8c90;border-color:#e5484d;box-shadow:0 4px 14px #e5484d40}.t-link-icon{flex-shrink:0;align-items:center;display:flex}.t-link-label{text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.01em;overflow:hidden}.t-link-arrow{opacity:.7;transition:transform var(--t-fast) ease;flex-shrink:0;align-items:center;display:flex}.t-link-btn:hover .t-link-arrow{opacity:1;transform:translate(1px,-1px)}[dir=rtl] .t-link-btn:hover .t-link-arrow{transform:translate(-1px,-1px)}.task-progress{align-items:center;gap:10px;margin-top:8px;padding:2px 0;display:flex}.task-progress input[type=range]{appearance:none;background:var(--surface-2);cursor:pointer;min-width:0;height:5px;transition:height var(--t-fast) ease;border-radius:999px;outline:none;flex:1}.task-progress input[type=range]:hover{height:7px}.task-progress input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--accent);cursor:grab;width:12px;height:12px;transition:transform var(--t-fast) var(--ease-spring);border:2px solid #fff;border-radius:50%;box-shadow:0 1px 4px #0000004d}.task-progress input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.25)}.task-progress input[type=range]::-webkit-slider-thumb:active{cursor:grabbing;transform:scale(1.1)}.task-progress input[type=range]::-moz-range-thumb{background:var(--accent);cursor:grab;border:2px solid #fff;border-radius:50%;width:12px;height:12px;box-shadow:0 1px 4px #0000004d}.task-progress input[type=range]::-moz-range-track{background:0 0}.task-progress .tp-val{text-align:center;min-width:38px;color:var(--accent);background:var(--accent-soft);font-variant-numeric:tabular-nums;letter-spacing:-.01em;border-radius:6px;flex-shrink:0;padding:1.5px 7px;font-size:11px;font-weight:600}.task-row .t-meta{flex-wrap:wrap;align-items:center;gap:7px;margin-top:10px;display:flex}.chip-date{background:var(--surface-2);border:1px solid var(--border);color:var(--ink-muted);border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:11.5px;font-weight:600;display:inline-flex}.chip-date.open-date-chip{background:color-mix(in srgb, var(--accent) 8%, var(--surface-2));border-color:color-mix(in srgb, var(--accent) 25%, var(--border));color:var(--accent)}.chip-date.late{background:var(--danger-soft);border-color:color-mix(in srgb, var(--danger) 30%, transparent);color:var(--danger)}.task-row .t-edit{color:var(--ink-muted);border-radius:var(--radius-s);cursor:pointer;opacity:.65;width:32px;height:32px;transition:all var(--t-fast) ease;background:0 0;border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;margin-top:-2px;display:inline-flex}.task-row:hover .t-edit{opacity:1}.task-row .t-edit:hover{background:var(--surface-2);border-color:var(--border);color:var(--ink);transform:scale(1.06)}.subject-row{border-bottom:1px dashed var(--border);align-items:center;gap:11px;padding:11px 4px;display:flex}.subject-row:last-child{border-bottom:none}.swatch{border:2px solid color-mix(in srgb, var(--c) 70%, var(--border));background:var(--c);width:34px;height:34px;transition:transform var(--t-fast) var(--ease-out);border-radius:11px;flex-shrink:0}.swatch:active{transform:scale(.9)}.subject-row .s-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:14.5px;font-weight:500;overflow:hidden}.subject-row .s-actions{gap:2px;display:flex}.mini-btn{min-width:40px;min-height:40px;color:var(--ink-muted);transition:background-color var(--t-fast) ease, color var(--t-fast) ease, transform var(--t-fast) var(--ease-out);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.mini-btn:hover{background:var(--surface-2);color:var(--ink)}.mini-btn:active{transform:scale(.9)}.mini-btn.danger:hover{background:var(--danger-soft);color:var(--danger)}.subj-teacher-chip{color:var(--accent);background:var(--accent-soft);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;max-width:160px;margin-inline-end:4px;padding:2px 9px 2px 2px;font-size:11.5px;font-weight:600;display:inline-flex;overflow:hidden}.subj-teacher-av{background:var(--accent);width:19px;height:19px;color:var(--on-accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:10.5px;font-weight:700;display:inline-flex}.teacher-picker{flex-direction:column;gap:8px;display:flex}.teacher-picker-item{border-radius:var(--radius-s);background:var(--surface-2);width:100%;color:var(--ink);text-align:start;cursor:pointer;transition:background-color var(--t-fast) ease, border-color var(--t-fast) ease;border:1px solid #0000;align-items:center;gap:10px;padding:9px 10px;font-size:14px;font-weight:500;display:flex}.teacher-picker-item:hover{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 30%, var(--border))}.teacher-picker-item .tp-av{width:28px;height:28px;color:var(--on-accent);object-fit:cover;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:inline-flex;overflow:hidden}.teacher-picker-item .tp-img-ph{background:var(--surface-3);color:var(--ink-muted)}.teacher-picker-item img.tp-av,.teacher-picker-item .tp-av img{object-fit:cover}.palette{grid-template-columns:repeat(6,1fr);gap:10px;padding:6px 2px;display:grid}.palette button{aspect-ratio:1;transition:transform var(--t-fast) var(--ease-out), border-color var(--t-fast) ease, box-shadow var(--t-fast) ease;border:2.5px solid #0000;border-radius:12px}.palette button:hover{transform:scale(1.08)}.palette button[aria-pressed=true]{border-color:var(--ink);transform:scale(1.05);box-shadow:0 2px 8px #00000026}.vault-search{margin-bottom:12px}.empty{text-align:center;color:var(--ink-muted);flex-direction:column;justify-content:center;align-items:center;padding:60px 20px;animation:.6s ease-out fadeIn;display:flex}.empty>svg{margin-inline:auto;color:var(--accent);opacity:.85;margin-bottom:14px}.empty .e-title{font-family:var(--font-display);color:var(--ink);letter-spacing:-.01em;margin-bottom:6px;font-size:18px;font-weight:700}.empty .e-hint{max-width:320px;color:var(--ink-muted);margin-bottom:20px;font-size:13.5px;line-height:1.5}.pin-toggle{background:var(--surface-2);border:1px solid var(--border);cursor:pointer;width:40px;height:22px;transition:background-color var(--t-fast) ease, border-color var(--t-fast) ease;border-radius:999px;flex-shrink:0;position:relative}.pin-toggle .pin-knob{top:2px;background:var(--surface);width:16px;height:16px;box-shadow:var(--shadow-1);transition:transform var(--t-fast) var(--ease-out);border-radius:50%;position:absolute;inset-inline-start:2px}.pin-toggle.on{background:var(--accent);border-color:var(--accent)}.pin-toggle.on .pin-knob{transform:translate(18px)}[dir=rtl] .pin-toggle.on .pin-knob{transform:translate(-18px)}.auth-gate{z-index:9999;background:var(--bg);justify-content:center;align-items:center;padding:24px;animation:.35s both authGateIn;display:flex;position:fixed;inset:0}@keyframes authGateIn{0%{opacity:0}to{opacity:1}}.auth-gate-card{text-align:center;background:var(--card,var(--surface,#fff));border:1px solid var(--border,#00000014);border-radius:24px;flex-direction:column;align-items:center;gap:14px;width:100%;max-width:360px;padding:36px 28px;display:flex;box-shadow:0 18px 48px #0000001f}.auth-gate-logo{color:var(--accent);display:flex}.auth-gate-title{letter-spacing:-.02em;margin:0;font-size:26px;font-weight:800}.auth-gate-sub{color:var(--muted,var(--text-2,#777));margin:0;font-size:14px;line-height:1.6}.auth-gate-btn{justify-content:center;align-items:center;width:100%;margin-top:6px;display:flex}.auth-gate-hint{color:var(--muted,var(--text-2,#999));margin:0;font-size:12px;line-height:1.5}.only-phone{display:none}@media (width<=767.98px){.only-desktop{display:none!important}.only-phone{display:block}}.agenda-day{margin-bottom:4px}.agenda-day+.agenda-day{margin-top:18px}.ag-dayname{font-family:var(--font-display);letter-spacing:0;color:var(--ink-muted);align-items:center;gap:8px;font-size:21px;font-weight:700;display:flex}.agenda-day.has-tasks .ag-dayname{color:var(--accent)}.agenda-day.is-today .ag-dayname{color:var(--ink)}.ag-today-chip{background:var(--accent);color:var(--on-accent);letter-spacing:.02em;border-radius:999px;padding:2px 9px;font-size:10.5px;font-weight:600}.ag-sub{color:var(--ink-muted);margin:2px 2px 10px;font-size:12.5px}.ag-list .task-card+.task-card{margin-top:10px}.page-title{font-family:var(--font-display);letter-spacing:0;z-index:0;letter-spacing:-.02em;color:var(--ink);margin:0 0 4px;font-size:clamp(21px,5.5vw,26px);font-weight:700;display:inline-block;position:relative}.day-greeting{color:var(--ink-muted);align-items:center;gap:6px;margin:2px;font-size:13px;display:flex}.mode-seg{margin:14px 0 12px}.mode-seg .seg-count{background:var(--surface-2);min-width:20px;height:20px;color:var(--ink-muted);font-variant-numeric:tabular-nums;border-radius:999px;justify-content:center;align-items:center;padding:0 6px;font-size:11.5px;font-weight:600;display:inline-flex}.mode-seg button[aria-pressed=true] .seg-count{background:var(--accent-soft);color:var(--accent)}.group-head{align-items:center;gap:10px;margin:24px 2px 12px;display:flex}.group-head:first-child{margin-top:6px}.group-head .g-title{color:var(--ink);letter-spacing:-.01em;padding-inline:2px;font-size:15px;font-weight:700;display:inline-block;position:relative}.group-head .g-count{font-variant-numeric:tabular-nums;background:var(--surface-2);min-width:22px;height:22px;color:var(--ink-muted);border-radius:999px;justify-content:center;align-items:center;padding:0 8px;font-size:11.5px;font-weight:700;display:inline-flex}.group-backlog .g-count{background:var(--danger-soft);color:var(--danger);border:1px solid color-mix(in srgb, var(--danger) 30%, transparent)}.group-upcoming .g-count{background:var(--accent-soft);color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 30%, transparent)}.group-done .g-count{background:var(--success-soft);color:var(--success);border:1px solid color-mix(in srgb, var(--success) 30%, transparent)}.g-empty-line{color:var(--ink-muted);padding:2px 4px 6px;font-size:13px}.task-card.is-late{border-color:color-mix(in srgb, var(--danger) 28%, var(--border));background:var(--surface);box-shadow:var(--shadow-1)}.task-card.is-late:hover{border-color:color-mix(in srgb, var(--danger) 45%, var(--border))}.chip-date{background:var(--surface-2);color:var(--ink-muted);font-variant-numeric:tabular-nums;border-radius:999px;align-items:center;gap:5px;padding:2.5px 9px;font-size:11.5px;font-weight:500;display:inline-flex}.chip-date.late{background:var(--danger-soft);color:var(--danger);font-weight:600}.chip-date svg{flex-shrink:0}.cal-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-l);box-shadow:var(--shadow-1);padding:16px 20px;position:relative}[data-theme=dark] .cal-card{background:var(--surface);border-color:var(--border);box-shadow:var(--shadow-1)}.cal-tape{display:none}.cal-card .cal-head,.cal-card .cal-grid,.cal-card .cal-foot{padding-inline-start:0}.cal-foot{justify-content:flex-end;margin-top:10px;display:flex}.tasks-toolbar{align-items:center;gap:8px;margin:22px 2px 10px;display:flex}.tasks-toolbar .day-label{align-items:center;gap:8px;margin-inline-end:auto;font-size:15px;font-weight:600;display:flex}.tasks-toolbar .day-count{color:var(--ink-muted);background:var(--surface-2);font-variant-numeric:tabular-nums;border-radius:999px;padding:2px 9px;font-size:12.5px;font-weight:500}.day-list{background-image:none}[dir=rtl] .cal-head [data-act=prev] svg,[dir=rtl] .cal-head [data-act=next] svg{transform:scaleX(-1)}.task-card{padding:4px}.page-head-row{justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;display:flex}.notes-tools{flex-direction:column;gap:10px;margin-bottom:18px;display:flex}@media (width>=768px){.notes-tools{flex-direction:row;align-items:center;gap:12px}.notes-tools .search-wrap{flex:0 0 280px}.notes-tools .chips-row{flex:1;min-width:0}}.search-wrap{position:relative}.search-wrap svg{inset-inline-start:13px;color:var(--ink-muted);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.search-wrap .input{padding-inline-start:42px}.notes-grid{grid-template-columns:repeat(auto-fill,minmax(158px,1fr));align-items:start;gap:12px;display:grid}.notes-grid.grid-empty{display:block}@media (width>=768px) and (height>=640px){.notes-grid.grid-empty{justify-content:center;align-items:flex-start;padding-block:6vh;display:flex}.notes-grid.grid-empty .empty{width:min(460px,100%)}}@media (width>=640px){.notes-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}}.sticky{--c:var(--warn);border-radius:var(--radius);border:1px solid var(--border);border-top:3px solid var(--c);background:var(--surface);text-align:start;width:100%;min-height:120px;transition:transform var(--t-fast) var(--ease-out), box-shadow var(--t-fast) ease, border-color var(--t-fast) ease;box-shadow:var(--shadow-1);flex-direction:column;gap:7px;padding:16px 14px 12px;display:flex;position:relative}.sticky .pin-flag{top:10px;color:var(--gold);opacity:0;transition:opacity var(--t-fast) ease, transform var(--t-fast) var(--ease-out);pointer-events:none;position:absolute;inset-inline-end:12px;transform:translateY(-4px)}.sticky.pinned .pin-flag{opacity:1;transform:translateY(0)}@media (hover:hover){.sticky:hover{box-shadow:var(--shadow-2);border-color:color-mix(in srgb, var(--c) 40%, var(--border));transform:translateY(-2px)}.stat-card:hover{box-shadow:var(--shadow-2);transform:translateY(-2px)}}.sticky:before{display:none}.sticky.shade-1,.sticky.shade-2,.sticky.shade-3{background:var(--surface)}.sticky.nou{--c:var(--warn)}.sticky .n-title{overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:14px;font-weight:600;display:-webkit-box;overflow:hidden}.sticky .n-text{color:color-mix(in srgb, var(--ink) 78%, var(--c));overflow-wrap:anywhere;-webkit-line-clamp:4;white-space:pre-line;-webkit-box-orient:vertical;font-size:12.5px;display:-webkit-box;overflow:hidden}.sticky .n-imgs{gap:5px;display:flex}.sticky .n-imgs img{object-fit:cover;border:1px solid color-mix(in srgb, var(--ink) 12%, transparent);border-radius:8px;width:42px;height:42px}.sticky .n-imgs .more-img{background:color-mix(in srgb, var(--ink) 10%, transparent);width:42px;height:42px;color:var(--ink-muted);border-radius:8px;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:flex}.sticky .n-foot{color:var(--ink-muted);align-items:center;gap:6px;margin-top:auto;padding-top:4px;font-size:10.5px;display:flex}.sticky .n-foot .n-line{border-top:1px dashed color-mix(in srgb, var(--ink) 18%, transparent);flex:1}.img-grid{flex-wrap:wrap;gap:10px;display:flex}.img-thumb{border-radius:var(--radius-xs);border:1px solid var(--border);width:76px;height:76px;position:relative;overflow:hidden}.img-thumb img{object-fit:cover;width:100%;height:100%}.img-thumb .rm{top:3px;background:var(--scrim);color:#fff;fill:currentColor;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;display:flex;position:absolute;inset-inline-end:3px}.map-full-container{height:calc(100vh - var(--nav-h) - env(safe-area-inset-bottom));z-index:1;width:100%;position:absolute;inset:0;overflow:hidden}.places-map-view{background-color:var(--surface-2);z-index:0;width:100%;height:100%}.map-floating-ui{top:max(16px, env(safe-area-inset-top));z-index:1000;align-items:flex-start;gap:12px;display:flex;position:absolute;left:16px;right:16px}.map-search-bar{background:var(--surface);border:1px solid var(--border);border-radius:16px;flex:1;align-items:center;gap:12px;height:48px;padding:8px 16px;display:flex;box-shadow:0 4px 16px #0000001f}.map-search-icon{color:var(--ink-muted);align-items:center;display:flex}.map-search-input{color:var(--ink);background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:15px}.map-search-input::placeholder{color:var(--ink-muted)}.map-search-btn{background:var(--accent);color:var(--on-accent);cursor:pointer;border:none;border-radius:8px;padding:6px 12px;font-size:13px;font-weight:600}.map-gps-btn{background:var(--surface);border:1px solid var(--border);width:48px;height:48px;color:var(--accent);cursor:pointer;border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;transition:transform .2s,background .2s;display:flex;box-shadow:0 4px 16px #0000001f}.map-gps-btn:active{transform:scale(.92)}.map-gps-btn.loading{animation:1s infinite alternate pulse}@keyframes pulse{0%{opacity:1;transform:scale(1)}to{opacity:.5;transform:scale(.95)}}.leaflet-container{font-family:inherit!important}.leaflet-popup-content-wrapper{background:var(--surface)!important;color:var(--ink)!important;border-radius:12px!important;box-shadow:0 4px 20px #00000026!important}.leaflet-popup-tip{background:var(--surface)!important}.leaflet-popup-content{margin:16px!important}.places-popup-header{color:var(--ink);margin-bottom:6px;font-size:15px;font-weight:700}.places-popup-desc{color:var(--ink-muted);margin-bottom:12px;font-size:13px}.places-popup-actions{gap:8px;display:flex}.places-popup-btn{cursor:pointer;border:none;border-radius:8px;padding:6px 12px;font-size:12px;font-weight:600}.places-popup-btn.edit{background:var(--surface-2);color:var(--ink)}.places-popup-btn.delete,[dir=rtl] .places-popup-btn.delete{color:#c62828;background:#ffebee}.img-add{border-radius:var(--radius-xs);border:1.5px dashed var(--border-strong);width:76px;height:76px;color:var(--ink-muted);transition:border-color var(--t-fast) ease, background-color var(--t-fast) ease;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:11px;display:flex}.img-add:hover{border-color:var(--accent);background:var(--accent-soft)}.places-map-card{border:1px solid var(--border);border-radius:var(--radius-l);box-shadow:var(--shadow-1);background:var(--surface-2);scroll-margin-top:calc(var(--header-h) + 12px);margin:4px 0 16px;overflow:hidden}.places-map{background:var(--surface-2);width:100%;height:340px}@media (width>=700px){.places-map{height:460px}}.places-map-error{height:340px;color:var(--ink-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:24px;font-size:14px;display:flex}.places-toolbar{padding:0 16px 8px}.places-search{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-1);align-items:center;gap:10px;padding:10px 14px;display:flex}.places-search>svg{color:var(--ink-muted);flex-shrink:0}.places-search input{min-width:0;color:var(--ink);font:inherit;background:0 0;border:none;outline:none;flex:1;font-size:14.5px}.places-search input::placeholder{color:var(--ink-muted)}.places-clear{color:var(--ink-muted);cursor:pointer;background:0 0;border:none;padding:2px;display:flex}.places-count{color:var(--ink-muted);padding:2px 20px 10px;font-size:12.5px}.places-list{flex-direction:column;gap:10px;padding:0 16px 24px;display:flex}.place-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-1);cursor:pointer;transition:box-shadow var(--t-fast) ease, transform var(--t-fast) ease, border-color var(--t-fast) ease;align-items:center;gap:12px;padding:12px 14px;display:flex}.place-card:hover{box-shadow:var(--shadow-card-hover)}.place-card:active{transform:scale(.99)}.place-dot{background:var(--c,var(--accent));width:12px;height:12px;box-shadow:0 0 0 3px color-mix(in srgb, var(--c,var(--accent)) 18%, transparent);border-radius:50%;flex-shrink:0}.place-info{flex-direction:column;flex:1;align-items:flex-start;gap:3px;min-width:0;display:flex}.place-name{font-family:var(--font-display);font-size:16.5px;font-weight:700;line-height:1.25}.place-desc{color:var(--ink-muted);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:13px;overflow:hidden}.place-coords{border:1px dashed var(--border-strong);color:var(--ink-muted);cursor:pointer;transition:color var(--t-fast) ease, border-color var(--t-fast) ease;background:0 0;border-radius:999px;padding:2px 9px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px}.place-coords:hover{color:var(--accent);border-color:var(--accent)}.place-actions{flex-shrink:0;gap:2px;display:flex}.place-actions .icon-btn{width:34px;height:34px}.place-actions .icon-btn.danger{color:var(--danger)}.geo-results{border:1px solid var(--border);border-radius:var(--radius-s);background:var(--surface);margin-top:8px;overflow:hidden}.geo-result{text-align:start;border:none;border-bottom:1px solid var(--border);cursor:pointer;width:100%;font:inherit;color:var(--ink);background:0 0;align-items:flex-start;gap:8px;padding:10px 12px;font-size:13.5px;display:flex}.geo-result:last-child{border-bottom:none}.geo-result:hover{background:var(--accent-soft)}.geo-status{color:var(--ink-muted);margin-top:8px;font-size:12.5px}.geo-parsed{align-items:center;gap:8px;margin-top:8px;display:flex}.profile-id-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-l);box-shadow:var(--shadow-1);margin-bottom:16px;padding:20px;position:relative;overflow:hidden}.profile-id-card:before{display:none}.id-card-top{justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px;display:flex}.id-brand-badge{text-transform:uppercase;letter-spacing:.06em;color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent);border:1px solid color-mix(in srgb, var(--accent) 25%, transparent);border-radius:999px;align-items:center;gap:6px;padding:3px 9px;font-size:11.5px;font-weight:700;display:inline-flex}.id-verified-chip{color:var(--success);background:var(--success-soft);border-radius:999px;align-items:center;gap:5px;padding:3px 10px;font-size:11px;font-weight:600;display:inline-flex}.id-card-main{align-items:center;gap:16px;margin-bottom:16px;display:flex}.id-avatar-wrap{flex-shrink:0;position:relative}.id-avatar{background:var(--surface-2);width:58px;height:58px;color:var(--accent);border:1.5px solid var(--border);box-shadow:var(--shadow-1);object-fit:cover;border-radius:50%;justify-content:center;align-items:center;font-size:22px;font-weight:700;display:flex}.id-student-info{flex:1;min-width:0}.id-student-name{font-family:var(--font-display);color:var(--ink);letter-spacing:-.015em;text-overflow:ellipsis;white-space:nowrap;margin-bottom:6px;font-size:20px;font-weight:700;line-height:1.25;overflow:hidden}.id-pills-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.id-pill{border-radius:var(--radius-xs);background:var(--surface-2);color:var(--ink);border:1px solid var(--border);align-items:center;gap:4px;padding:3px 9px;font-size:12px;font-weight:600;display:inline-flex}.id-pill.id-pill-degree{background:color-mix(in srgb, var(--accent) 12%, var(--surface));color:var(--accent);border-color:color-mix(in srgb, var(--accent) 25%, transparent)}.id-pill.id-pill-spec{background:var(--surface-2);color:var(--ink);border-color:var(--border)}.id-pill.id-pill-group{background:var(--surface-2);color:var(--ink-muted)}.id-card-footer{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding-top:14px;display:flex}.id-pos-indicator{color:var(--ink);align-items:center;gap:8px;font-size:13px;font-weight:600;display:inline-flex}.id-pos-dot{background:var(--accent);width:8px;height:8px;box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent);border-radius:50%}.id-quick-edit-btn{border-radius:var(--radius-s);color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent);border:1px solid color-mix(in srgb, var(--accent) 20%, transparent);cursor:pointer;transition:all var(--t-fast) ease;align-items:center;gap:5px;padding:5px 12px;font-size:12.5px;font-weight:600;display:inline-flex}.id-quick-edit-btn:hover{background:color-mix(in srgb, var(--accent) 20%, transparent);transform:translateY(-1px)}.profile-tabs-bar{background:var(--surface-2);border-radius:var(--radius-m);border:1px solid var(--border);scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:6px;margin-bottom:16px;padding:4px;display:flex;overflow-x:auto}.profile-tabs-bar::-webkit-scrollbar{display:none}.profile-tab-btn{border-radius:var(--radius-s);min-width:max-content;color:var(--ink-muted);cursor:pointer;transition:all var(--t-fast) ease;white-space:nowrap;background:0 0;border:none;flex:1;justify-content:center;align-items:center;gap:7px;padding:9px 14px;font-size:13.5px;font-weight:600;display:inline-flex}.profile-tab-btn:hover{color:var(--ink);background:color-mix(in srgb, var(--surface) 60%, transparent)}.profile-tab-btn.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-1);border:1px solid var(--border)}.profile-tab-btn svg{opacity:.8;flex-shrink:0}.profile-tab-btn.active svg{color:var(--accent);opacity:1}.profile-pane{animation:rise-in var(--t-fast) var(--ease-out) both;display:none}.profile-pane.active{display:block}.current-spotlight-card{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius);margin-bottom:14px;padding:16px 18px}.spotlight-top{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.spotlight-badge{color:var(--accent);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:6px;font-size:11.5px;font-weight:700;display:inline-flex}.spotlight-title{font-family:var(--font-display);color:var(--ink);margin-bottom:4px;font-size:18px;font-weight:700}.spotlight-sub{color:var(--ink-muted);margin-bottom:14px;font-size:13px}.spotlight-actions{flex-wrap:wrap;gap:10px;display:flex}.spotlight-actions .btn{flex:1;min-width:140px}.curriculum-card{margin-bottom:14px;padding:14px 18px}.curriculum-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.curriculum-title{color:var(--ink);font-size:13.5px;font-weight:600}.curriculum-pct{color:var(--accent);font-size:13px;font-weight:700}.curriculum-track{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;width:100%;height:8px;margin-bottom:6px;overflow:hidden}.curriculum-fill{background:var(--accent);border-radius:999px;height:100%;transition:width .5s}.curriculum-meta{color:var(--ink-muted);font-size:12px}.structure-header-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.year-accordion-card{border:1px solid var(--border);transition:border-color var(--t-fast) ease;margin-bottom:10px;overflow:hidden}.year-accordion-card.active-year{border-color:color-mix(in srgb, var(--accent) 40%, var(--border));box-shadow:0 2px 10px color-mix(in srgb, var(--accent) 8%, transparent)}.year-accordion-head{background:var(--surface);cursor:pointer;text-align:start;width:100%;transition:background-color var(--t-fast) ease;border:none;align-items:center;gap:10px;padding:13px 16px;display:flex}.year-accordion-head:hover{background:var(--surface-2)}.year-acc-title{color:var(--ink);font-size:15px;font-weight:700}.year-acc-summary{color:var(--ink-muted);margin-inline-start:4px;font-size:12px}.year-acc-tag{color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent);border-radius:999px;align-items:center;gap:4px;margin-inline-start:auto;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.year-acc-chevron{color:var(--ink-muted);transition:transform var(--t-fast) ease;margin-inline-start:6px}.year-accordion-card.open .year-acc-chevron{transform:rotate(180deg)}.year-accordion-body{border-top:1px solid var(--border);padding:0 16px 12px;display:none}.year-accordion-card.open .year-accordion-body{display:block}.sem-hub-row{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:11px 0;display:flex}.sem-hub-row:last-child{border-bottom:none}.sem-hub-title{color:var(--ink);font-size:14px;font-weight:600}.sem-hub-subs-btn{color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent);border-radius:var(--radius-xs);border:1px solid color-mix(in srgb, var(--accent) 20%, transparent);cursor:pointer;transition:all var(--t-fast) ease;align-items:center;gap:4px;padding:3px 8px;font-size:12px;font-weight:500;display:inline-flex}.sem-hub-subs-btn:hover{background:color-mix(in srgb, var(--accent) 20%, transparent)}.sem-hub-actions{align-items:center;gap:8px;margin-inline-start:auto;display:flex}.status-chip{letter-spacing:.02em;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:11px;font-weight:600;display:inline-flex}.status-current{background:var(--accent-soft);color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 30%, transparent)}.status-done{background:var(--success-soft);color:var(--success)}.status-future{background:var(--surface-2);color:var(--ink-muted);border:1px solid var(--border)}.student-form-card{margin-bottom:14px;padding:18px 18px 14px}.student-form-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.auto-save-pill{color:var(--success);background:var(--success-soft);opacity:0;transition:opacity var(--t-fast) ease;border-radius:999px;align-items:center;gap:5px;padding:2px 10px;font-size:11.5px;font-weight:600;display:inline-flex}.auto-save-pill.visible{opacity:1}.stepper{align-items:center;gap:2px;display:inline-flex}.stepper button{min-width:38px;min-height:38px;color:var(--ink-muted);border:1px solid var(--border);background:var(--surface);transition:background-color var(--t-fast) ease;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.stepper button:hover:not(:disabled){background:var(--surface-2);color:var(--ink)}.stepper button:disabled{opacity:.35;cursor:not-allowed}.stepper .val{text-align:center;font-variant-numeric:tabular-nums;min-width:34px;font-weight:600}.setup-card{padding:18px 16px}.setup-card .hint{color:var(--ink-muted);margin-bottom:14px;font-size:13.5px}.setup-row{justify-content:space-between;align-items:center;gap:12px;padding:8px 0;display:flex}.setup-row .lbl{font-size:14px;font-weight:500}.semester-pick-row{border-bottom:1px dashed var(--border);border-radius:var(--radius-xs);text-align:start;width:100%;transition:background-color var(--t-fast) ease;align-items:center;gap:10px;padding:12px 6px;display:flex}.semester-pick-row:hover{background:var(--surface-2)}.semester-pick-row .sp-meta{flex:1;min-width:0}.semester-pick-row .sp-title{font-size:14px;font-weight:500}.semester-pick-row .sp-sub{color:var(--ink-muted);margin-top:1px;font-size:11.5px}.data-actions{flex-direction:column;gap:10px;display:flex}.hint-line{color:var(--ink-muted);font-size:12.5px;line-height:1.55}.danger-zone-card{border:1.5px solid color-mix(in srgb, var(--danger) 30%, var(--border));background:color-mix(in srgb, var(--danger) 3%, var(--surface));margin-bottom:14px;padding:16px 18px}.danger-zone-head{color:var(--danger);align-items:center;gap:8px;margin-bottom:4px;font-size:14.5px;font-weight:700;display:flex}.danger-zone-note{color:var(--ink-muted);margin-bottom:12px;font-size:12.5px;line-height:1.5}.lang-menu{top:calc(var(--header-h) - 6px);z-index:50;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-s);box-shadow:var(--shadow-2);min-width:150px;padding:6px;display:none;position:absolute;inset-inline-end:12px}.lang-menu.open{animation:rise-in var(--t-fast) var(--ease-out) both;display:block}.lang-menu button{border-radius:var(--radius-xs);text-align:start;width:100%;transition:background-color var(--t-fast) ease;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;font-size:14px;font-weight:500;display:flex}.lang-menu button:hover{background:var(--surface-2)}.lang-menu button .check-ic{color:var(--accent);visibility:hidden}.lang-menu button[aria-checked=true] .check-ic{visibility:visible}.onboard{z-index:100;background:var(--bg);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0;overflow-y:auto}.onboard .ob-card{text-align:center;width:min(420px,100%);animation:rise-in var(--t-med) var(--ease-out) both}.onboard .ob-logo{color:var(--accent);margin-bottom:14px}.onboard h1{letter-spacing:-.02em;font-size:26px}.onboard .ob-tag{color:var(--ink-muted);margin:6px 0 26px;font-size:14.5px}.onboard .ob-label{letter-spacing:.03em;color:var(--ink-muted);margin:20px 0 10px;font-size:13px;font-weight:600}.onboard .lang-btns{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.onboard .lang-btns button,.onboard .theme-btns button{border-radius:var(--radius-s);border:1.5px solid var(--border);background:var(--surface);min-height:48px;transition:border-color var(--t-fast) ease, background-color var(--t-fast) ease;justify-content:center;align-items:center;gap:8px;font-size:14px;font-weight:500;display:inline-flex}.onboard .theme-btns{grid-template-columns:1fr 1fr;gap:8px;display:grid}.onboard .lang-btns button[aria-pressed=true],.onboard .theme-btns button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft)}.onboard .ob-start{width:100%;margin-top:28px}.stats-body-wrap{padding-bottom:48px}.stats-kpi-grid{grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:20px;display:grid}@media (width>=640px){.stats-kpi-grid{grid-template-columns:repeat(4,1fr)}}.stats-kpi-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;justify-content:space-between;min-height:104px;padding:14px 16px;transition:transform .16s,border-color .16s,box-shadow .16s;display:flex}.stats-kpi-card:hover{border-color:var(--accent);box-shadow:var(--shadow-md);transform:translateY(-2px)}.kpi-top{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.kpi-label{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;font-weight:600;overflow:hidden}.kpi-icon-pill{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:13px;display:inline-flex}.kpi-icon-pill.p-blue{color:#38bdf8;background:#38bdf824}.kpi-icon-pill.p-fire{background:#f9731624}.kpi-icon-pill.p-purple{color:#c084fc;background:#a855f724}.kpi-icon-pill.p-gold{color:#eab308;background:#eab30824}.kpi-value{color:var(--ink);letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-bottom:4px;font-size:24px;font-weight:700;line-height:1.1}.kpi-value.kpi-streak{color:var(--accent);font-size:16px;font-weight:700}.kpi-value.standing-good{color:var(--success)}.kpi-value.standing-mid{color:var(--warn)}.kpi-value.standing-bad{color:var(--danger)}.kpi-sub{color:var(--ink-muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.stats-insight-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-l);box-shadow:var(--shadow-1);margin-bottom:20px;position:relative;overflow:hidden}.stats-insight-card:before{display:none}.insight-head{align-items:center;gap:10px;margin-bottom:12px;display:flex}.insight-glow-icon{background:var(--accent-soft);width:32px;height:32px;color:var(--accent);box-shadow:none;border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.insight-title{color:var(--ink);margin:0;font-size:14.5px;font-weight:600}.insight-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.insight-item{background:var(--surface-2);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:8px;align-items:center;gap:12px;padding:10px 14px;font-size:13px;line-height:1.45;display:flex}[dir=rtl] .insight-item{border-left:1px solid var(--border);border-right:3px solid var(--accent)}.insight-item.insight-alert{border-left-color:var(--danger);background:var(--danger-soft)}[dir=rtl] .insight-item.insight-alert{border-right-color:var(--danger)}.insight-item.insight-challenge{border-left-color:var(--warn);background:var(--warn-soft)}[dir=rtl] .insight-item.insight-challenge{border-right-color:var(--warn)}.insight-item.insight-info{border-left-color:var(--accent);background:var(--accent-soft)}[dir=rtl] .insight-item.insight-info{border-right-color:var(--accent)}.insight-item.insight-boost{border-left-color:var(--accent);background:var(--accent-soft)}[dir=rtl] .insight-item.insight-boost{border-right-color:var(--accent)}.insight-item.insight-celebrate{border-left-color:var(--success);background:var(--success-soft)}[dir=rtl] .insight-item.insight-celebrate{border-right-color:var(--success)}.insight-item-icon{flex-shrink:0;margin-top:1px;font-size:15px;line-height:1}.insight-item-text{color:var(--ink);flex:1}.ratio-wrap{align-items:center;gap:18px;display:flex}.donut{background:conic-gradient(var(--success) 0 var(--deg), var(--danger) var(--deg) 360deg);width:118px;height:118px;box-shadow:var(--shadow-1);transition:transform var(--t-med) var(--ease-out);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.donut:hover{transform:scale(1.03)}.donut-hole{background:var(--surface);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:82px;height:82px;display:flex}.donut-num{font-variant-numeric:tabular-nums;letter-spacing:-.01em;color:var(--accent);font-size:22px;font-weight:700;line-height:1.1}.donut-cap{color:var(--ink-muted);font-size:10.5px}.ratio-legend{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.legend-row{align-items:center;gap:8px;font-size:13.5px;display:flex}.legend-row b{font-variant-numeric:tabular-nums;margin-inline-start:auto}.legend-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.legend-total{color:var(--ink-muted);border-top:1px dashed var(--border);padding-top:8px;font-size:12.5px}.workload-breakdown{border-top:1px dashed var(--border);margin-top:16px;padding-top:14px}.workload-bar{background:var(--surface-2);border-radius:999px;gap:2px;height:8px;margin-bottom:10px;display:flex;overflow:hidden}.wb-segment{border-radius:999px;height:100%;transition:width .3s}.wb-segment.wb-light{background:var(--success)}.wb-segment.wb-easy{background:var(--warn)}.wb-segment.wb-hard{background:var(--danger)}.workload-chips{flex-wrap:wrap;gap:12px;font-size:11.5px;display:flex}.wchip{color:var(--ink-muted);align-items:center;gap:6px;display:inline-flex}.wchip .wdot{border-radius:50%;width:8px;height:8px}.wchip.wc-light .wdot{background:var(--success)}.wchip.wc-easy .wdot{background:var(--warn)}.wchip.wc-hard .wdot{background:var(--danger)}.wchip b{color:var(--ink)}.bday-empty-card{text-align:center;color:var(--ink-muted);justify-content:center;align-items:center;gap:12px;padding:22px 16px;font-size:13px;line-height:1.5;display:flex}.bar-list{flex-direction:column;gap:12px;display:flex}.bar-row{align-items:center;gap:10px;display:flex}.bar-label{text-overflow:ellipsis;white-space:nowrap;flex:0 180px;min-width:120px;font-size:13px;font-weight:500;overflow:hidden}.bar-track{background:var(--surface-2);border-radius:999px;flex:1;height:6px;overflow:hidden}.bar-fill{transform-origin:0;border-radius:999px;height:100%;display:block}.bar-list.stagger .bar-fill{animation:bar-grow .48s var(--ease-out) both}[dir=rtl] .bar-fill{transform-origin:100%}@keyframes bar-grow{0%{transform:scaleX(0)}}.bar-val{text-align:center;font-variant-numeric:tabular-nums;flex-shrink:0;width:34px;font-size:12.5px;font-weight:600}.standing-ends{justify-content:space-between;margin-bottom:12px;font-size:11px;font-weight:600;display:flex}.standing-ends .se.bad{color:var(--danger)}.standing-ends .se.good{color:var(--success)}.standing-row{align-items:center;gap:12px;padding:10px 0;display:flex}.standing-row+.standing-row{border-top:1px solid var(--border)}.standing-row .h-name{text-overflow:ellipsis;white-space:nowrap;flex:0 200px;min-width:140px;font-size:13.5px;font-weight:500;overflow:hidden}.standing-row input[type=range]{appearance:none;background:var(--surface-2);cursor:pointer;border-radius:999px;outline:none;flex:1;min-width:100px;height:6px}.standing-row input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--accent);cursor:grab;border:2px solid #fff;border-radius:50%;width:13px;height:13px;transition:transform .12s;box-shadow:0 1px 3px #0000004d}.standing-row input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.25)}.standing-row input[type=range]::-webkit-slider-thumb:active{cursor:grabbing;transform:scale(1.1)}.standing-row input[type=range]::-moz-range-thumb{background:var(--accent);cursor:grab;border:2px solid #fff;border-radius:50%;width:13px;height:13px;box-shadow:0 1px 3px #0000004d}.standing-row input[type=range]::-moz-range-track{background:0 0}.standing-badge{text-align:center;border:1.5px solid var(--border);font-variant-numeric:tabular-nums;border-radius:999px;flex-shrink:0;min-width:46px;padding:2.5px 7px;font-size:11.5px;font-weight:600}.standing-badge.good{color:var(--success)}.standing-badge.mid{color:var(--warn)}.standing-badge.bad{color:var(--danger)}.spark{flex-shrink:0;align-items:flex-end;gap:2px;width:66px;height:26px;display:inline-flex}.spark i{border-radius:2px 2px 0 0;width:5px;min-height:3px}.hardest-row{align-items:center;gap:12px;padding:10px 4px;display:flex}.hardest-row+.hardest-row{border-top:1px solid var(--border)}.hardest-row .h-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:140px;font-size:13.5px;font-weight:500;overflow:hidden}.trend-badge{border-radius:6px;flex-shrink:0;padding:2px 8px;font-size:11px;font-weight:500}.trend-badge.good{background:var(--success-soft);color:var(--success)}.trend-badge.bad{background:var(--danger-soft);color:var(--danger)}.trend-badge.mid{background:var(--surface-2);color:var(--ink-muted)}.vault-hero{text-align:center;max-width:440px;margin-inline:auto;padding:32px 28px 24px}.vault-hero-icon{background:var(--surface-2);border:1px solid var(--border);width:52px;height:52px;color:var(--accent);border-radius:50%;justify-content:center;align-items:center;margin-bottom:8px;display:inline-flex}.vault-hero .e-title{color:var(--ink);font-size:17px;font-weight:700}.vault-hero>svg{color:var(--accent)}.empty-center{flex-direction:column;align-items:center;display:flex}.empty.empty-in-flow{border:1.5px dashed var(--border);border-radius:var(--radius);background:var(--surface);width:100%;padding:28px 20px}@media (width>=768px) and (height>=640px){.empty-center{padding-block:8vh}.empty-center .empty{width:min(460px,100%)}}.places-map-embed{border:1px solid var(--border)!important}.place-card{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-1);transition:transform var(--t-fast) var(--ease-out), box-shadow var(--t-fast) ease;border-radius:var(--radius)!important}@media (hover:hover){.place-card:hover{box-shadow:var(--shadow-2);transform:translateY(-2px)}}.pin-boxes{justify-content:center;gap:12px;display:flex}.pin-digit{text-align:center;font-variant-numeric:tabular-nums;border-radius:var(--radius-s);border:1px solid var(--border);background:var(--surface-2);width:52px;height:54px;color:var(--ink);transition:border-color var(--t-fast) ease, box-shadow var(--t-fast) ease;font-size:24px;font-weight:700}.pin-digit:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft);background:var(--surface);outline:none}.vault-entry .ve-head{align-items:center;gap:8px;margin-bottom:8px;display:flex}.vault-entry .ve-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:14.5px;font-weight:600;overflow:hidden}.vault-entry .ve-row{align-items:center;gap:8px;padding:3px 0;font-size:13px;display:flex}.vault-entry .ve-row svg{color:var(--ink-muted);flex-shrink:0}.vault-entry .ve-pass{letter-spacing:.14em;overflow-wrap:anywhere;color:var(--ink);flex:1;font-weight:600}.vault-entry .ve-mono{overflow-wrap:anywhere;direction:ltr;unicode-bidi:embed}.vault-entry .ve-link{color:var(--accent);overflow-wrap:anywhere;align-items:center;gap:6px;text-decoration:none;display:inline-flex}.vault-entry .ve-link:hover{text-decoration:underline}.vault-entry .ve-desc{color:var(--ink-muted);border-top:1px dashed var(--border);overflow-wrap:anywhere;margin-top:6px;padding-top:6px;font-size:12.5px}.place-form .textarea.place-desc{resize:vertical;background-image:none;min-height:84px;line-height:1.6}.place-coords-row{gap:12px;display:flex}.place-coords-row .field{flex:1;min-width:0}.place-coords-row .input{font-variant-numeric:tabular-nums;text-align:center;letter-spacing:.03em}.place-gps-btn{margin:2px 0 16px}.place-color-field{margin-top:4px}.place-swatches{flex-wrap:wrap;gap:12px;display:flex}.place-form .swatch{background:var(--sw,#33589e);width:28px;height:28px;box-shadow:0 0 0 1px var(--border);cursor:pointer;border:none;border-radius:50%;padding:0;transition:transform .15s,box-shadow .15s}.place-form .swatch:hover{transform:scale(1.15)}.place-form .swatch.selected{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--accent);transform:scale(1.15)}.place-form .swatch-custom{position:relative;overflow:hidden}.place-form .swatch-custom input{opacity:0;cursor:pointer;border:none;width:100%;height:100%;margin:0;padding:0;position:absolute;inset:0}.places-map-card{position:relative}.places-locate-btn{bottom:44px;z-index:450;border:1px solid var(--border);background:var(--surface,#fff);width:44px;height:44px;color:var(--ink,#111);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;transition:transform .15s,box-shadow .15s;display:flex;position:absolute;inset-inline-end:12px;box-shadow:0 4px 14px #00000059}.places-locate-btn:hover{transform:translateY(-2px);box-shadow:0 6px 18px #0006}.places-locate-btn:disabled{opacity:.7;cursor:progress;transform:none}.places-locate-btn.loading svg{animation:1s linear infinite pl-locate-spin}.places-map-hint{top:10px;z-index:460;color:#f7f2e9;pointer-events:none;-webkit-backdrop-filter:blur(4px);background:#17140dd9;border-radius:999px;align-items:center;gap:6px;max-width:calc(100% - 20px);padding:6px 12px;font-size:12px;line-height:1.3;display:flex;position:absolute;inset-inline-start:10px}.places-map-hint svg{opacity:.9;flex:none}.place-details-head{align-items:center;gap:10px;margin-bottom:10px;display:flex}.place-details-head .place-dot{background:var(--c,#33589e);width:14px;height:14px;box-shadow:0 0 0 3px color-mix(in srgb, var(--c,#33589e) 22%, transparent);border-radius:50%;flex:none}.place-details-name{font-size:17px;font-weight:700;line-height:1.3}.place-details-desc{color:var(--text-2,var(--muted,#777));margin:0 0 12px;font-size:14px;line-height:1.6}.place-details-coords{border:1px dashed var(--border);color:var(--ink,var(--text,inherit));font:inherit;cursor:pointer;background:0 0;border-radius:10px;align-items:center;gap:6px;margin-bottom:16px;padding:8px 14px;font-size:13.5px;transition:border-color .15s,color .15s;display:inline-flex}.place-details-coords:hover{border-color:var(--accent);color:var(--accent)}.place-details-actions{gap:8px;display:flex}.place-details-actions .btn{flex:1;justify-content:center;align-items:center;gap:6px;padding-inline:8px;font-size:13px;display:inline-flex}.place-poi-cat{color:var(--accent);margin:-4px 0 12px;font-size:12.5px;font-weight:600}.place-poi-note{color:var(--text-2,var(--muted,#777));margin:0 0 12px;font-size:12.5px}.place-loading{text-align:center;color:var(--text-2,var(--muted,#777));padding:26px 0 22px;font-size:14px}.place-loading:after{content:"";border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:22px;height:22px;margin:12px auto 0;animation:.9s linear infinite pl-locate-spin;display:block}.place-poi-rows{flex-direction:column;gap:8px;margin-bottom:14px;display:flex}.place-poi-row{border:1px solid var(--border);color:var(--ink,var(--text,inherit));border-radius:12px;align-items:center;gap:10px;padding:10px 12px;font-size:13.5px;text-decoration:none;transition:border-color .15s;display:flex}a.place-poi-row:hover{border-color:var(--accent)}.place-poi-row .lbl{color:var(--text-2,var(--muted,#777));flex:none;font-size:12px}.place-poi-row .val{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.place-poi-photos{gap:8px;margin-bottom:16px;padding-bottom:6px;display:flex;overflow-x:auto}.place-poi-photo{object-fit:cover;border:1px solid var(--border);cursor:zoom-in;background:var(--surface,#fff);border-radius:10px;flex:none;width:112px;height:84px}@keyframes pl-locate-spin{to{transform:rotate(360deg)}}.teachers-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;margin-top:16px;display:grid}.teacher-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-l);box-shadow:var(--shadow-1);transition:box-shadow var(--t-fast) var(--ease-out), transform var(--t-fast) var(--ease-out);flex-direction:column;gap:12px;padding:16px;display:flex}.teacher-card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.tc-photo{justify-content:center;align-items:center;display:flex}.tc-photo .av-initial,.tc-photo .av-img,.tc-photo .av-img-ph{color:#fff;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;font-size:24px;font-weight:700;display:inline-flex}.tc-photo .av-img,.tc-photo .av-img-ph,.tc-photo img.av-img-ph{object-fit:cover}.tc-photo .av-img-ph{overflow:hidden}.tc-body{text-align:center}.tc-name{text-overflow:ellipsis;white-space:nowrap;font-size:15.5px;font-weight:700;overflow:hidden}.tc-subj{color:var(--ink-muted);align-items:center;gap:6px;margin-top:4px;font-size:12.5px;display:inline-flex}.tc-rate{justify-content:center;align-items:center;gap:6px;margin-top:10px;display:inline-flex}.tc-rate .star{color:var(--border-strong)}.tc-rate .star.on{color:var(--accent)}.tc-avg{font-variant-numeric:tabular-nums;font-size:13px;font-weight:700}.tc-count{color:var(--ink-muted);font-size:12px}.tc-actions{justify-content:center;gap:8px;margin-top:auto;padding-top:2px;display:flex}.tc-actions .tc-rate-btn{color:var(--accent)}.tf-form{flex-direction:column;gap:14px;display:flex}.tf-photo-row{align-items:center;gap:14px;display:flex}.tf-preview .av-initial,.tf-preview .av-img,.tf-preview .av-img-ph{color:#fff;object-fit:cover;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;font-size:24px;font-weight:700;display:inline-flex;overflow:hidden}.tf-photo-btns{flex-direction:column;gap:8px;display:flex}.rf-form{flex-direction:column;gap:16px;display:flex}.rf-stars{justify-content:center;gap:6px;margin:6px 0;display:flex}.rf-star{color:var(--border-strong);cursor:pointer;transition:transform var(--t-fast) var(--ease-spring), color var(--t-fast) var(--ease-out);background:0 0;border:0;padding:4px;display:inline-flex}.rf-star:hover{transform:scale(1.15)}.rf-star.on{color:var(--accent)}.rf-hint{text-align:center;color:var(--ink-muted);margin-top:-4px;font-size:12.5px}.rf-list-head{color:var(--ink-muted);margin-bottom:-6px;font-size:13px;font-weight:600}.rf-list{flex-direction:column;gap:8px;display:flex}.rf-empty{color:var(--ink-muted);text-align:center;padding:10px 0;font-size:13px}.rf-row{background:var(--surface-2);border-radius:var(--radius-s);padding:10px 12px}.rf-row-top{align-items:center;gap:8px;display:flex}.rf-stars-mini .star{color:var(--border-strong)}.rf-stars-mini .star.on{color:var(--accent)}.rf-date{color:var(--ink-muted);margin-inline-start:auto;font-size:11.5px}.rf-comment{color:var(--ink);white-space:pre-line;margin-top:6px;font-size:13px}.contacts-toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-top:16px;display:flex}.contacts-search{flex:1;min-width:180px;position:relative}.contacts-search>svg{inset-inline-start:12px;color:var(--ink-muted);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.contacts-search .input{padding-inline-start:38px}.contacts-clear{inset-inline-end:8px;background:var(--surface-2);width:24px;height:24px;color:var(--ink-muted);cursor:pointer;border:0;border-radius:50%;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}.contacts-cats{flex-wrap:wrap;gap:6px;display:flex}.contacts-count{color:var(--ink-muted);margin-top:10px;font-size:12px}.contacts-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-top:12px;display:grid}.contact-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-l);box-shadow:var(--shadow-1);flex-direction:column;gap:10px;padding:14px;display:flex}.contact-top{align-items:center;gap:12px;display:flex}.contact-avatar{object-fit:cover;color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:18px;font-weight:700;display:inline-flex;overflow:hidden}.contact-avatar img,.contact-avatar.img,img.contact-avatar{object-fit:cover}.contact-info{flex:1;min-width:0}.contact-name{text-overflow:ellipsis;white-space:nowrap;font-size:14.5px;font-weight:700;overflow:hidden}.contact-org{color:var(--ink-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.contact-cat{border:1px solid var(--border);color:var(--ink-muted);border-radius:999px;align-items:center;margin-top:3px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.contact-lines{flex-direction:column;gap:5px;min-width:0;display:flex}.contact-line{color:var(--ink);align-items:center;gap:8px;min-width:0;font-size:13px;display:flex}.contact-line svg{color:var(--ink-muted);flex-shrink:0}.contact-line span{text-overflow:ellipsis;white-space:nowrap;text-align:start;direction:ltr;overflow:hidden}.contact-note{color:var(--ink-muted);white-space:pre-line;font-size:12.5px}.contact-actions{gap:8px;margin-top:auto;display:flex}.contact-actions .mini-btn{flex:1;justify-content:center;align-items:center;gap:5px;padding:7px 6px;display:inline-flex}.cf-form{flex-direction:column;gap:12px;display:flex}.cf-photo-row{align-items:center;gap:12px;display:flex}.cf-preview .av-initial,.cf-preview .av-img,.cf-preview .av-img-ph{color:#fff;object-fit:cover;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;font-size:22px;font-weight:700;display:inline-flex;overflow:hidden}.av-initial.av-empty{background:var(--surface-2)!important;border:1.5px dashed var(--border-strong)!important;color:var(--ink-muted)!important}.contact-avatar-empty{justify-content:center;align-items:center;display:inline-flex;background:var(--surface-2)!important;border:1.5px dashed var(--border-strong)!important;color:var(--ink-muted)!important}.cf-photo-btns{gap:8px;display:flex}.cf-list{flex-direction:column;gap:8px;display:flex}.cf-item{align-items:center;gap:8px;display:flex}.cf-item .input{flex:1}.cf-add-row{gap:8px;margin-top:2px;display:flex}.cloud-card{border:1.5px solid var(--border);position:relative;overflow:hidden}.cloud-disabled{text-align:center;opacity:.6;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:28px 16px;display:flex}.cloud-disabled-icon{color:var(--ink-muted)}.cloud-disabled-text{color:var(--ink-muted);font-size:13px;line-height:1.5}.cloud-login{text-align:center;background:var(--gradient-accent-soft);border-radius:var(--radius);flex-direction:column;align-items:center;padding:32px 20px 24px;display:flex;position:relative}.cloud-login:before{content:"";border-radius:inherit;background:radial-gradient(ellipse at 50% 0%, color-mix(in srgb, var(--accent) 8%, transparent) 0%, transparent 70%);pointer-events:none;position:absolute;inset:0}.cloud-login-icon{color:var(--accent);margin-bottom:8px;animation:3s ease-in-out infinite cloud-float}@keyframes cloud-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.cloud-login-title{font-family:var(--font-display);color:var(--ink);letter-spacing:-.01em;margin-bottom:6px;font-size:20px;font-weight:700}.cloud-login-sub{color:var(--ink-muted);max-width:300px;margin-bottom:8px;font-size:13.5px;line-height:1.6}.cloud-login-hint{color:var(--ink-muted);opacity:.7;align-items:center;gap:5px;margin-bottom:20px;font-size:12px;display:flex}.cloud-google-btn{border-radius:var(--radius-s);border:1.5px solid var(--border-strong);background:var(--surface);min-height:48px;color:var(--ink);cursor:pointer;transition:all var(--t-fast) ease;box-shadow:var(--shadow-1);justify-content:center;align-items:center;gap:10px;width:100%;padding:0 24px;font-size:14.5px;font-weight:600;display:inline-flex}.cloud-google-btn:hover{border-color:var(--accent);box-shadow:var(--shadow-glow);transform:translateY(-1px)}.cloud-google-btn:active{box-shadow:var(--shadow-1);transform:translateY(0)}.cloud-login .cloud-merge{opacity:.5;text-align:center;color:var(--ink-muted);margin:14px 0 0;font-size:11.5px}.cloud-connected{padding:4px 0 0}.cloud-user-row{align-items:center;gap:14px;padding:0 4px;display:flex}.cloud-avatar{object-fit:cover;border:2.5px solid var(--accent-soft);width:48px;height:48px;box-shadow:0 2px 10px color-mix(in srgb, var(--accent) 18%, transparent);border-radius:50%;flex-shrink:0}.cloud-avatar-fallback{background:var(--gradient-accent-soft);color:var(--accent);justify-content:center;align-items:center;display:flex}.cloud-user-info{flex:1;min-width:0}.cloud-user-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:600;overflow:hidden}.cloud-user-email{color:var(--ink-muted);text-overflow:ellipsis;white-space:nowrap;margin-top:1px;font-size:12.5px;overflow:hidden}.cloud-badge{background:var(--success-soft);color:var(--success);white-space:nowrap;border-radius:20px;flex-shrink:0;align-items:center;gap:5px;padding:5px 12px;font-size:12px;font-weight:600;display:inline-flex}.cloud-divider{background:var(--border);height:1px;margin:16px 0}.cloud-actions{flex-direction:column;gap:8px;display:flex}.cloud-actions .btn{border-radius:var(--radius-s);width:100%;min-height:42px;transition:all var(--t-fast) ease;justify-content:center;align-items:center;gap:7px;font-size:13.5px;display:inline-flex}.cloud-actions .btn-sm{min-height:40px}.cloud-actions .btn-ghost:hover{background:var(--accent-soft)}.cloud-actions .btn-danger{margin-top:4px}.login-gate{z-index:99;background:var(--bg);animation:fade-in var(--t-med) ease both;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0;overflow-y:auto}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.login-gate-card{text-align:center;width:min(400px,100%);animation:rise-in var(--t-med) var(--ease-out) both;animation-delay:.1s}.login-gate-icon{color:var(--accent);margin-bottom:16px;animation:3s ease-in-out infinite cloud-float}.login-gate-title{font-family:var(--font-display);color:var(--ink);margin-bottom:8px;font-size:24px;font-weight:700}.login-gate-sub{color:var(--ink-muted);margin-bottom:28px;max-width:320px;margin-inline:auto;font-size:14px;line-height:1.6}.login-gate .cloud-google-btn{max-width:320px;margin:0 auto}.login-gate-error{color:var(--danger);min-height:20px;margin-top:14px;font-size:13px}.login-gate-footer{color:var(--ink-muted);opacity:.5;margin-top:20px;font-size:12px}.home-page-container{flex-direction:column;gap:22px;padding-bottom:52px;display:flex}.home-hero-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-l);box-shadow:var(--shadow-1);transition:border-color var(--t-med) ease, box-shadow var(--t-med) ease;padding:22px 24px;position:relative;overflow:hidden}[data-theme=dark] .home-hero-card{background:linear-gradient(180deg, #d4af370d 0%, #111317fa 100%), var(--surface);border:1px solid #d4af372e;box-shadow:0 8px 32px #00000080,inset 0 1px #d4af3740}[data-theme=dark] .card,[data-theme=dark] .home-kpi-card,[data-theme=dark] .profile-id-card{box-shadow:0 4px 20px #0006,inset 0 1px #ffffff0d}.home-hero-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-2)}.hero-top-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px;display:flex}.hero-text{flex:1;min-width:200px}.hero-badge-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.hero-date-badge{background:var(--surface-2);border:1px solid var(--border);color:var(--ink-muted);border-radius:999px;align-items:center;gap:6px;padding:3px 9px;font-size:11.5px;font-weight:500;display:inline-flex}.hero-streak-badge{color:var(--warn);background:#f59e0b1f;border:1px solid #f59e0b40;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:11.5px;font-weight:600;display:inline-flex}.hero-title{color:var(--ink);letter-spacing:-.02em;margin:0 0 4px;font-size:clamp(19px,5vw,24px);font-weight:700;line-height:1.25}.hero-motiv-msg{color:var(--ink-muted);align-items:center;gap:6px;margin:0;font-size:13.5px;font-weight:500;display:inline-flex}.home-progress-wrap{background:var(--surface-2);border-radius:var(--radius-lg);border:1px solid var(--border);flex-shrink:0;align-items:center;gap:12px;padding:8px 14px;display:flex}.home-ring-box{flex-shrink:0;width:56px;height:56px;position:relative}.home-ring-box svg{transform:rotate(-90deg)}.home-ring-box .ring-bg{fill:none;stroke:var(--surface);stroke-width:4.5px}.home-ring-box .ring-fill{fill:none;stroke:var(--accent);stroke-width:4.5px;stroke-linecap:round;transition:stroke-dashoffset .4s}.home-ring-val{color:var(--ink);justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex;position:absolute;inset:0}.home-ring-meta{flex-direction:column;display:flex}.home-ring-meta b{color:var(--ink);font-size:14.5px;font-weight:700}.home-ring-meta span{color:var(--ink-muted);font-size:11px}.hero-actions-bar{border-top:1px dashed var(--border);flex-wrap:wrap;align-items:center;gap:10px;padding-top:16px;display:flex}.hero-act-btn{border-radius:var(--radius-md);align-items:center;gap:7px;padding:8px 14px;font-size:12.5px;font-weight:600;transition:transform .14s,box-shadow .14s;display:inline-flex}.hero-act-btn:hover{transform:translateY(-2px)}@media (width<=520px){.hero-actions-bar{grid-template-columns:1fr 1fr;gap:8px;display:grid}.hero-act-btn{justify-content:center;width:100%;padding:8px 10px;font-size:12px}}.home-stats-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}@media (width>=640px){.home-stats-grid{grid-template-columns:repeat(4,1fr)}}.home-kpi-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-align:left;box-shadow:var(--shadow-1);cursor:pointer;flex-direction:column;align-items:flex-start;width:100%;padding:16px 18px;transition:transform .16s,border-color .16s,box-shadow .16s;display:flex}[dir=rtl] .home-kpi-card{text-align:right;align-items:flex-start}.home-kpi-card:hover{border-color:var(--accent);box-shadow:var(--shadow-2);transform:translateY(-2px)}.kpi-card-top{justify-content:space-between;align-items:center;width:100%;margin-bottom:12px;display:flex}.kpi-icon-pill{border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.kpi-icon-pill.pill-blue{color:var(--accent);background:#3b82f61f}.kpi-icon-pill.pill-green{background:var(--success-soft);color:var(--success)}.kpi-icon-pill.pill-rose{background:var(--danger-soft);color:var(--danger)}.kpi-icon-pill.pill-gray{background:var(--surface-2);color:var(--ink-muted)}.kpi-icon-pill.pill-purple{color:#a855f7;background:#a855f71f}.kpi-arrow{color:var(--ink-muted);opacity:.35;transition:transform .14s,opacity .14s}.home-kpi-card:hover .kpi-arrow{opacity:.9;transform:translate(3px)}[dir=rtl] .home-kpi-card:hover .kpi-arrow{transform:translate(-3px)}.kpi-num{color:var(--ink);letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-bottom:4px;font-size:26px;font-weight:700;line-height:1}.kpi-lbl{color:var(--ink-muted);font-size:12px;font-weight:500}.home-today-card{padding:8px 14px}.home-tasks-list{flex-direction:column;display:flex}.home-task-row{border-radius:var(--radius-md);align-items:center;gap:12px;padding:10px 6px;transition:background .14s;display:flex}.home-task-row+.home-task-row{border-top:1px dashed var(--border)}.home-task-row:hover{background:var(--surface-2)}.home-check-btn{border:2px solid var(--border);background:var(--surface);cursor:pointer;color:#fff;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;padding:0;transition:all .14s;display:flex}.home-check-btn:hover{border-color:var(--accent)}.home-check-btn.checked{background:var(--success);border-color:var(--success)}.home-task-main{cursor:pointer;flex:1;min-width:0}.home-task-title{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;margin-bottom:3px;font-size:13.5px;font-weight:600;overflow:hidden}.home-task-title.done-strike{opacity:.55;text-decoration:line-through}.home-task-sub{color:var(--ink-muted);align-items:center;gap:8px;font-size:11.5px;display:flex}.task-chip-sub{align-items:center;gap:5px;display:inline-flex}.task-chip-sub i{border-radius:50%;width:7px;height:7px;display:inline-block}.home-empty-today{justify-content:space-between;align-items:center;gap:14px;padding:16px 20px;display:flex}@media (width<=480px){.home-empty-today{flex-wrap:wrap;gap:12px}.home-empty-today .btn{justify-content:center;width:100%}}.empty-star-pill{background:#eab3081f;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;display:flex}.empty-today-text{flex:1}.empty-today-title{color:var(--ink);font-size:13px;font-weight:500}.academic-pos-card{flex-direction:column;display:flex}.pos-top-bar{justify-content:space-between;align-items:center;display:flex}.home-sub-chips{border-top:1px solid var(--border);flex-wrap:wrap;gap:8px;margin-top:14px;padding-top:12px;display:flex}.home-sub-chip{background:var(--surface-2);border:1px solid var(--border);color:var(--ink);border-radius:8px;align-items:center;gap:8px;padding:6px 12px;font-size:12.5px;font-weight:500;transition:all .14s;display:inline-flex}.home-sub-chip i{border-radius:50%;flex-shrink:0;width:8px;height:8px}.home-sub-chip:hover{border-color:var(--accent);background:var(--surface);transform:translateY(-1px)}.home-week-empty-card{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:24px 20px;display:flex}.week-empty-icon{background:var(--accent-soft);width:44px;height:44px;color:var(--accent);border-radius:12px;justify-content:center;align-items:center;margin-bottom:2px;display:flex}.week-empty-title{color:var(--ink);max-width:320px;font-size:14px;font-weight:600}.week-empty-actions{gap:10px;margin-top:6px;display:flex}.pomo-dialog{text-align:center;flex-direction:column;align-items:center;padding:8px 6px;display:flex}.pomo-tabs{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;gap:4px;margin-bottom:22px;padding:3px;display:flex}.pomo-tab{color:var(--ink-muted);cursor:pointer;background:0 0;border:none;border-radius:999px;align-items:center;gap:6px;padding:7px 18px;font-size:13px;font-weight:600;transition:all .16s;display:inline-flex}.pomo-tab.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.pomo-clock-wrap{justify-content:center;align-items:center;width:190px;height:190px;margin-bottom:22px;display:flex;position:relative}.pomo-ring{position:absolute;inset:0;transform:rotate(-90deg)}.pomo-ring-bg{fill:none;stroke:var(--surface-2);stroke-width:8px}.pomo-ring-fill{fill:none;stroke:var(--accent);stroke-width:8px;stroke-linecap:round;transition:stroke-dashoffset .8s linear}.pomo-clock-inner{flex-direction:column;align-items:center;display:flex}.pomo-digits{color:var(--ink);letter-spacing:-.03em;font-size:40px;font-weight:800;line-height:1}.pomo-mode-label{color:var(--ink-muted);margin-top:6px;font-size:12px;font-weight:500}.pomo-actions{align-items:center;gap:12px;margin-bottom:18px;display:flex}.pomo-btn-toggle{border-radius:999px;align-items:center;gap:8px;padding:10px 28px;font-size:15px;font-weight:600;display:inline-flex}.pomo-btn-toggle.running{background:var(--danger);border-color:var(--danger)}.pomo-btn-reset{border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;padding:0;display:inline-flex}.pomo-session-badge{color:var(--ink-muted);background:var(--surface-2);border:1px solid var(--border);border-radius:999px;align-items:center;gap:6px;padding:5px 14px;font-size:12px;display:inline-flex}
