@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.04o39dzmj.ey..woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e629b5bc06499d58-s.0b_~8bw~gzh90.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/1a099d89ee94ee96-s.0_qb~~5cn13jl.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.0eehd8tgys7nv.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:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.04o39dzmj.ey..woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/e629b5bc06499d58-s.0b_~8bw~gzh90.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/1a099d89ee94ee96-s.0_qb~~5cn13jl.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.0eehd8tgys7nv.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:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.04o39dzmj.ey..woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/e629b5bc06499d58-s.0b_~8bw~gzh90.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/1a099d89ee94ee96-s.0_qb~~5cn13jl.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.0eehd8tgys7nv.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:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.04o39dzmj.ey..woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/e629b5bc06499d58-s.0b_~8bw~gzh90.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/1a099d89ee94ee96-s.0_qb~~5cn13jl.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.0eehd8tgys7nv.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:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.04o39dzmj.ey..woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(../media/e629b5bc06499d58-s.0b_~8bw~gzh90.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(../media/1a099d89ee94ee96-s.0_qb~~5cn13jl.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.0eehd8tgys7nv.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:Plus Jakarta Sans Fallback;src:local(Arial);ascent-override:98.88%;descent-override:21.15%;line-gap-override:0.0%;size-adjust:104.98%}.plus_jakarta_sans_e627931b-module__-IWRBq__className{font-family:Plus Jakarta Sans,Plus Jakarta Sans Fallback;font-style:normal}.plus_jakarta_sans_e627931b-module__-IWRBq__variable{--font-jakarta:"Plus Jakarta Sans", "Plus Jakarta Sans Fallback"}
:root{--em-50:#f5f2fb;--em-100:#e8e0f5;--em-200:#d0bfeb;--em-300:#b298dd;--em-400:#8d63c9;--em-500:#6f3fb3;--em-600:#57308f;--em-700:#42246d;--em-800:#341c56;--em-900:#271442;--gold-100:#fef9c3;--gold-300:#fde047;--gold-400:#facc15;--gold-500:#eab308;--gold-600:#ca8a04;--ink-900:#0f172a;--ink-800:#1e293b;--ink-700:#334155;--ink-600:#475569;--ink-500:#64748b;--ink-400:#94a3b8;--ink-300:#cbd5e1;--line:#e7ece9;--line-soft:#f0f3f1;--surface:#fff;--page:#f7f5fb;--r-sm:10px;--r:16px;--r-lg:20px;--r-xl:28px;--r-pill:999px;--sh-sm:0 1px 2px #2714420d, 0 2px 8px #2714420d;--sh:0 6px 22px #27144214;--sh-lg:0 18px 48px #27144224;--sh-em:0 10px 28px #6f3fb352;--sh-gold:0 10px 26px #ca8a0452;--transition:.3s cubic-bezier(.4, 0, .2, 1);--spring:.45s cubic-bezier(.16, 1, .3, 1);--font-display:var(--font-jakarta), var(--font-noto-sans-kr), "Noto Sans KR", sans-serif;--font-body:var(--font-noto-sans-kr), "Noto Sans KR", sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}html,body{min-height:100%;font-family:var(--font-body);color:var(--ink-900);background:var(--page);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;word-break:keep-all}a{color:inherit;text-decoration:none}.stat-num,.modal-date,.notice-date,.card-meta{font-variant-numeric:tabular-nums}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes modalPop{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes routebar{0%{left:-35%}60%{left:100%}to{left:100%}}.auth-shell{background:radial-gradient(60% 50% at 15% 0%, #6f3fb324, transparent 70%), radial-gradient(55% 50% at 100% 100%, #ca8a041a, transparent 70%), linear-gradient(160deg, var(--em-50) 0%, #fff 55%, var(--em-50) 100%);justify-content:center;align-items:center;min-height:100dvh;padding:40px 20px;display:flex;position:relative}.auth-card{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:var(--r-xl);width:100%;max-width:440px;box-shadow:var(--sh-lg);animation:fadeUp .6s var(--spring) both;background:#ffffffeb;border:1px solid #ffffffb3;padding:40px 36px;position:relative}.auth-brand{justify-content:center;align-items:center;gap:10px;margin-bottom:28px;display:flex}.auth-logo{width:40px;height:40px;box-shadow:var(--sh-em);background:0 0;border-radius:50%;justify-content:center;align-items:center;font-size:18px;display:flex;overflow:hidden}.auth-logo img,.logo-icon img{object-fit:cover;border-radius:inherit;width:100%;height:100%;display:block}.auth-brand-text{flex-direction:column;display:flex}.auth-brand-main{font-family:var(--font-display);color:var(--em-700);font-size:15px;font-weight:800;line-height:1.2}.auth-brand-sub{font-family:var(--font-display);color:var(--em-500);letter-spacing:1px;text-transform:uppercase;font-size:10px;font-weight:600}.step-progress{justify-content:center;align-items:center;gap:6px;margin-bottom:28px;display:flex}.step-dot{border-radius:var(--r-pill);background:var(--em-100);width:28px;height:6px;transition:background var(--transition), width var(--spring)}.step-dot.active{background:linear-gradient(90deg, var(--em-500), var(--em-600));width:44px}.step-dot.done{background:var(--em-400)}.auth-step-kicker{color:var(--em-700);background:var(--em-50);border:1px solid var(--em-200);border-radius:var(--r-pill);margin-bottom:14px;padding:5px 13px;font-size:11.5px;font-weight:700;display:inline-block}.auth-step-title{color:var(--ink-900);letter-spacing:-.6px;text-wrap:balance;margin-bottom:8px;font-size:24px;font-weight:800;line-height:1.3}.auth-step-desc{color:var(--ink-500);margin-bottom:26px;font-size:13.5px;line-height:1.7}.field{margin-bottom:18px}.field-label{color:var(--ink-700);margin-bottom:7px;font-size:12.5px;font-weight:700;display:block}.field-input{border:1.5px solid var(--line);border-radius:var(--r-sm);width:100%;color:var(--ink-900);transition:border-color var(--transition), box-shadow var(--transition);background:#fff;padding:13px 15px;font-family:inherit;font-size:14px}.field-input::placeholder{color:var(--ink-400)}.field-input:focus{border-color:var(--em-400);outline:none;box-shadow:0 0 0 4px #6f3fb324}.btn-primary{border-radius:var(--r-sm);background:linear-gradient(135deg, var(--em-500), var(--em-600));color:#fff;cursor:pointer;width:100%;box-shadow:var(--sh-em);transition:transform var(--spring), box-shadow var(--spring), opacity .2s;border:none;padding:15px 20px;font-family:inherit;font-size:14.5px;font-weight:800}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 14px 34px #6f3fb373}.btn-primary:active:not(:disabled){transform:translateY(0)scale(.99)}.btn-primary:disabled{opacity:.55;cursor:not-allowed}.btn-ghost{border-radius:var(--r-sm);border:1.5px solid var(--line);width:100%;color:var(--ink-600);cursor:pointer;transition:border-color var(--transition), background var(--transition), color var(--transition);background:#fff;margin-top:10px;padding:13px 20px;font-family:inherit;font-size:13px;font-weight:600}.btn-ghost:hover{border-color:var(--em-200);background:var(--em-50);color:var(--em-700)}.alert{border-radius:var(--r-sm);margin-bottom:16px;padding:12px 14px;font-size:12.5px;font-weight:600;line-height:1.5}.alert-error{color:#dc2626;background:#fee2e2;border:1px solid #fecaca}.alert-info{background:var(--em-50);color:var(--em-700);border:1px solid var(--em-100)}.consent-box{background:linear-gradient(160deg, var(--em-50), #fff);border:1px solid var(--em-100);border-radius:var(--r);margin-bottom:24px;padding:22px 20px}.consent-box-icon{margin-bottom:10px;font-size:32px}.consent-box-title{color:var(--em-800);margin-bottom:6px;font-size:14px;font-weight:800}.consent-box-text{color:var(--em-700);font-size:12.5px;line-height:1.7}.complete-wrap{text-align:center;padding:12px 0}.complete-icon{background:linear-gradient(135deg, var(--em-400), var(--em-600));width:76px;height:76px;box-shadow:var(--sh-em);animation:modalPop .5s var(--spring) both;border-radius:50%;justify-content:center;align-items:center;margin:0 auto 22px;font-size:36px;display:flex}.auth-foot{text-align:center;color:var(--ink-400);margin-top:22px;font-size:12.5px}.auth-foot a{color:var(--em-600);font-weight:700}.profile-summary{background:var(--em-50);border:1px solid var(--em-100);border-radius:var(--r-sm);flex-direction:column;gap:8px;margin-bottom:22px;padding:16px;display:flex}.profile-row{justify-content:space-between;font-size:12.5px;display:flex}.profile-row .k{color:var(--ink-500);font-weight:600}.profile-row .v{color:var(--ink-900);font-weight:700}.app-shell{background:radial-gradient(50% 38% at 100% 0%, #ca8a040f, transparent 72%), radial-gradient(46% 40% at 0% 12%, #6f3fb314, transparent 72%), var(--page);min-height:100dvh;display:flex}.app-main{flex:1;min-width:0;min-height:100dvh;margin-left:260px}.sidebar{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-right:1px solid var(--line);z-index:100;background:#ffffffd1;flex-direction:column;width:260px;height:100dvh;display:flex;position:fixed;top:0;left:0;box-shadow:4px 0 30px #2714420f}.sidebar-logo{border-bottom:1px solid var(--line);padding:30px 24px 22px}.logo-badge{align-items:center;gap:10px;display:inline-flex}.logo-icon{width:40px;height:40px;box-shadow:var(--sh-em);background:0 0;border-radius:50%;justify-content:center;align-items:center;font-size:18px;display:flex;overflow:hidden}.logo-text{flex-direction:column;display:flex}.logo-main{font-family:var(--font-display);color:var(--em-700);font-size:15px;font-weight:800;line-height:1.2}.logo-sub{font-family:var(--font-display);color:var(--em-500);letter-spacing:1px;text-transform:uppercase;font-size:10px;font-weight:600}.sidebar-nav{flex-direction:column;flex:1;gap:6px;padding:20px 14px;display:flex;overflow-y:auto}.nav-label{font-family:var(--font-display);color:var(--ink-400);letter-spacing:1.4px;text-transform:uppercase;padding:6px 10px 4px;font-size:10px;font-weight:700}.nav-item{border-radius:var(--r-sm);cursor:pointer;transition:background var(--transition), transform var(--spring);align-items:center;gap:12px;padding:12px 14px;display:flex;position:relative}.nav-item:hover{background:var(--em-50);transform:translate(2px)}.nav-item.active{background:linear-gradient(135deg, var(--em-500), var(--em-600));box-shadow:var(--sh-em)}.nav-icon{background:var(--em-100);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:17px;display:flex}.nav-item.active .nav-icon{background:#fff3}.nav-text{flex-direction:column;min-width:0;display:flex}.nav-title{color:var(--ink-900);font-size:12.5px;font-weight:700;line-height:1.3}.nav-item.active .nav-title{color:#fff}.nav-desc{color:var(--ink-500);margin-top:1px;font-size:10.5px}.nav-item.active .nav-desc{color:#ffffffc7}.nav-badge{font-family:var(--font-display);letter-spacing:.5px;border-radius:var(--r-pill);background:var(--gold-100);color:var(--gold-600);margin-left:auto;padding:2px 8px;font-size:9px;font-weight:800}.nav-item.active .nav-badge{color:#fff;background:#ffffff40}.sidebar-footer{border-top:1px solid var(--line);padding:16px 14px}.sidebar-footer-inner{border-radius:var(--r-sm);background:var(--em-50);align-items:center;gap:10px;padding:10px 12px;display:flex}.footer-avatar{background:linear-gradient(135deg, var(--em-400), var(--em-600));color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:13px;font-weight:700;display:flex}.footer-info{flex:1;min-width:0}.footer-name{color:var(--em-800);white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;font-weight:700;overflow:hidden}.footer-role{color:var(--em-600);margin-top:1px;font-size:10px}.logout-btn{border-radius:var(--r-sm);border:1.5px solid var(--line);width:100%;color:var(--ink-500);cursor:pointer;transition:border-color var(--transition), color var(--transition), background var(--transition);background:#fff;margin-top:10px;padding:10px;font-family:inherit;font-size:11.5px;font-weight:600}.logout-btn:hover{color:#dc2626;background:#fef2f2;border-color:#fecaca}.topbar{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);z-index:50;background:#ffffffc7;justify-content:space-between;align-items:center;height:66px;padding:0 40px;display:flex;position:sticky;top:0}.topbar-title{font-family:var(--font-display);color:var(--ink-900);font-size:16px;font-weight:800}.topbar-title span{color:var(--em-500)}.topbar-right{align-items:center;gap:12px;display:flex}.topbar-tag{border-radius:var(--r-pill);border:1px solid var(--em-200);color:var(--em-700);background:var(--em-50);padding:5px 13px;font-size:11px;font-weight:600}.hero{animation:fadeUp .6s var(--spring) both;padding:52px 40px 0}.hero-kicker{color:var(--em-700);background:var(--em-50);border:1px solid var(--em-200);border-radius:var(--r-pill);align-items:center;gap:6px;margin-bottom:18px;padding:6px 15px;font-size:11.5px;font-weight:700;display:inline-flex}.hero h1{color:var(--ink-900);letter-spacing:-1.2px;text-wrap:balance;margin-bottom:12px;font-size:clamp(30px,4vw,42px);font-weight:900;line-height:1.2}.hero h1 .em{background:linear-gradient(120deg, var(--em-500), var(--em-700));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.hero p{color:var(--ink-500);max-width:560px;font-size:15px;line-height:1.8}.stats-bar{box-shadow:none;background:0 0;border:none;grid-template-columns:repeat(3,1fr);gap:16px;margin:32px 40px 8px;display:grid;overflow:visible}.stat-item{border:1px solid var(--line);border-right:1px solid var(--line);border-radius:var(--r);background:var(--surface);text-align:center;box-shadow:var(--sh-sm);transition:transform var(--spring), box-shadow var(--spring);flex:none;padding:22px 24px}.stat-item:last-child{border-right:1px solid var(--line)}.stat-item:hover{box-shadow:var(--sh);transform:translateY(-3px)}.stat-num{font-family:var(--font-display);color:var(--em-600);letter-spacing:-1px;font-size:30px;font-weight:800;line-height:1}.stat-label{color:var(--ink-400);margin-top:7px;font-size:11px}.section{padding:40px 40px 0}.section-header{justify-content:space-between;align-items:flex-end;margin-bottom:22px;display:flex}.section-title{color:var(--ink-900);letter-spacing:-.4px;font-size:19px;font-weight:800}.section-sub{color:var(--ink-400);margin-top:4px;font-size:12px}.see-all{color:var(--em-600);transition:color var(--transition);font-size:12px;font-weight:700}.see-all:hover{color:var(--em-700)}.cards{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;display:grid}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);cursor:pointer;transition:border-color var(--spring), box-shadow var(--spring), transform var(--spring);box-shadow:var(--sh-sm);padding:28px 28px 24px;display:block;position:relative;overflow:hidden}.card:before{content:"";background:linear-gradient(90deg, var(--em-400), var(--em-600));transform-origin:0;height:3px;transition:transform var(--spring);position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.card:hover{border-color:var(--em-200);box-shadow:var(--sh-lg);transform:translateY(-4px)}.card:hover:before{transform:scaleX(1)}.card-header{justify-content:space-between;align-items:flex-start;margin-bottom:18px;display:flex}.card-icon{border-radius:var(--r);width:54px;height:54px;transition:transform var(--spring);justify-content:center;align-items:center;font-size:25px;display:flex}.card:hover .card-icon{transform:scale(1.06)rotate(-3deg)}.card-icon.green{background:linear-gradient(135deg,#d1fae5,#a7f3d0)}.card-icon.teal{background:linear-gradient(135deg,#ccfbf1,#99f6e4)}.card-icon.cyan{background:linear-gradient(135deg,#cffafe,#a5f3fc)}.card-icon.emerald{background:linear-gradient(135deg,#ecfdf5,#d1fae5)}.card-status{font-family:var(--font-display);letter-spacing:.3px;border-radius:var(--r-pill);padding:4px 11px;font-size:10px;font-weight:700}.status-live{color:#16a34a;background:#dcfce7}.status-beta{background:var(--gold-100);color:var(--gold-600)}.status-new{color:#1d4ed8;background:#dbeafe}.status-soon{color:var(--ink-500);background:#f3f4f6}.card-title{color:var(--ink-900);letter-spacing:-.3px;margin-bottom:8px;font-size:16px;font-weight:800}.card-desc{color:var(--ink-500);margin-bottom:20px;font-size:13px;line-height:1.7}.card-tags{flex-wrap:wrap;gap:6px;margin-bottom:20px;display:flex}.tag{border-radius:var(--r-pill);background:var(--em-50);color:var(--em-700);border:1px solid var(--em-100);padding:4px 11px;font-size:10.5px;font-weight:600}.card-footer{border-top:1px solid var(--line-soft);justify-content:space-between;align-items:center;padding-top:16px;display:flex}.card-arrow{background:var(--em-50);border:1px solid var(--em-100);width:34px;height:34px;color:var(--em-600);transition:background var(--spring), color var(--spring), transform var(--spring);border-radius:10px;justify-content:center;align-items:center;font-size:14px;display:flex}.card:hover .card-arrow{background:linear-gradient(135deg, var(--gold-500), var(--gold-600));color:#fff;border-color:#0000;transform:translate(3px)}.card-meta{color:var(--ink-400);font-size:11px}.notice-list{flex-direction:column;gap:10px;display:flex}.notice-item{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);cursor:pointer;box-shadow:var(--sh-sm);transition:border-color var(--spring), box-shadow var(--spring), transform var(--spring);align-items:center;gap:16px;padding:18px 20px;display:flex}.notice-item:hover{border-color:var(--em-200);box-shadow:var(--sh);transform:translate(3px)}.notice-type{font-family:var(--font-display);border-radius:var(--r-pill);white-space:nowrap;flex-shrink:0;padding:4px 11px;font-size:10px;font-weight:700}.notice-type.important{color:#dc2626;background:#fee2e2}.notice-type.update{color:#1d4ed8;background:#dbeafe}.notice-type.general{background:var(--em-50);color:var(--em-700)}.notice-type.event{background:var(--gold-100);color:var(--gold-600)}.notice-content{flex:1;min-width:0}.notice-title-text{color:var(--ink-900);white-space:nowrap;text-overflow:ellipsis;margin-bottom:3px;font-size:13.5px;font-weight:700;overflow:hidden}.notice-date{color:var(--ink-400);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.notice-arrow{color:var(--ink-300);transition:color var(--transition), transform var(--spring);flex-shrink:0;font-size:14px}.notice-item:hover .notice-arrow{color:var(--em-500);transform:translate(2px)}.app-main>section:last-child{padding-bottom:64px}.btn-inline{border-radius:var(--r-sm);background:linear-gradient(135deg, var(--em-500), var(--em-600));color:#fff;cursor:pointer;box-shadow:var(--sh-em);transition:transform var(--spring), opacity .2s;border:none;padding:11px 18px;font-family:inherit;font-size:12.5px;font-weight:700}.btn-inline:hover{opacity:.96;transform:translateY(-1px)}.btn-inline:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-inline.ghost{color:var(--ink-600);border:1.5px solid var(--line);box-shadow:none;background:#fff}.btn-inline.ghost:hover{border-color:var(--em-200);color:var(--em-700);background:var(--em-50)}.btn-inline.ghost:disabled:hover{border-color:var(--line);color:var(--ink-600);background:#fff}.notice-tools{flex-shrink:0;gap:6px;display:flex}.tool-btn{border-radius:var(--r-sm);border:1.5px solid var(--line);color:var(--ink-500);cursor:pointer;transition:border-color var(--transition), color var(--transition), background var(--transition);background:#fff;padding:7px 12px;font-family:inherit;font-size:11px;font-weight:600}.tool-btn:hover{border-color:var(--em-200);color:var(--em-700);background:var(--em-50)}.tool-btn.danger:hover{color:#dc2626;background:#fef2f2;border-color:#fecaca}.empty-box{text-align:center;color:var(--ink-400);background:var(--surface);border:1px dashed var(--line);border-radius:var(--r);padding:64px 20px;font-size:13.5px}.modal-overlay{z-index:300;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0f172a6b;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{border-radius:var(--r-xl);width:100%;max-width:560px;max-height:84vh;box-shadow:var(--sh-lg);animation:modalPop .28s var(--spring) both;background:#fff;padding:32px;position:relative;overflow-y:auto}.modal-close{border:1.5px solid var(--line);cursor:pointer;width:34px;height:34px;color:var(--ink-500);transition:background var(--transition), color var(--transition);background:#fff;border-radius:10px;font-size:14px;position:absolute;top:20px;right:20px}.modal-close:hover{color:var(--ink-900);background:#f3f4f6}.modal-title{color:var(--ink-900);letter-spacing:-.4px;margin-bottom:8px;padding-right:36px;font-size:21px;font-weight:900}.modal-date{color:var(--ink-400);margin-bottom:18px;font-size:12px;display:block}.modal-body{color:var(--ink-700);white-space:pre-wrap;font-size:14px;line-height:1.8}textarea.field-input{resize:vertical;line-height:1.6}.nav-sublist{border-left:1.5px dashed var(--em-200);flex-direction:column;gap:2px;margin:2px 0 6px 18px;padding-left:10px;display:flex}.nav-subitem{border-radius:var(--r-sm);cursor:pointer;transition:background var(--transition);align-items:center;gap:8px;padding:8px 10px;display:flex}.nav-subitem:hover{background:var(--em-50)}.nav-subicon{background:var(--em-100);border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;display:flex}.nav-subtext{color:var(--ink-700);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:11.5px;font-weight:600;overflow:hidden}.nav-subarrow{color:var(--ink-400);flex-shrink:0;font-size:11px}.nav-subitem:hover .nav-subarrow{color:var(--em-500)}.page-loading{color:var(--ink-400);flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:120px 20px;font-size:13px;display:flex}.spinner{border:3px solid var(--em-100);border-top-color:var(--em-500);border-radius:50%;width:34px;height:34px;animation:.7s linear infinite spin}.field-hint{color:var(--em-700);margin-top:6px;font-size:11.5px;line-height:1.5}.btn-verify-email{margin-top:8px;padding:10px 16px;font-size:12.5px}.btn-verify-email:disabled{cursor:default;opacity:1}.btn-verify-email:not(:disabled):hover{border-color:var(--em-400);color:var(--em-700)}.btn-verify-email.is-verified{border-color:var(--em-200);background:var(--em-50);color:var(--em-700)}.field-error{color:#dc2626;margin-top:6px;font-size:12px;line-height:1.5}.gpt-toggle{cursor:default;align-items:center;gap:10px;margin:4px 0 16px;display:flex}.toggle-track{border-radius:var(--r-pill);background:var(--ink-300);cursor:pointer;width:42px;height:23px;transition:background var(--transition);flex-shrink:0;position:relative}.toggle-track.on{background:var(--em-500)}.toggle-thumb{width:19px;height:19px;transition:transform var(--spring);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #00000040}.toggle-track.on .toggle-thumb{transform:translate(19px)}.toggle-label{color:var(--ink-500);transition:color var(--transition);font-size:11.5px;font-weight:700}.toggle-track.on~.toggle-label{color:var(--em-700)}.card-locked{opacity:.62;background:#fafafa}.card-locked:before{display:none}.card-locked:hover{box-shadow:var(--sh-sm);border-color:var(--line);transform:none}.card-locked .card-icon{filter:grayscale(.6)}.card-locked:hover .card-icon{transform:none}.gpt-guide-modal{text-align:center;max-width:460px}.gpt-guide-icon{background:linear-gradient(135deg, var(--em-100), var(--em-200));border-radius:50%;justify-content:center;align-items:center;width:62px;height:62px;margin:0 auto 14px;font-size:28px;display:flex}.gpt-guide-text{color:var(--ink-700);margin:12px 0 18px;font-size:13.5px;line-height:1.75}.gpt-guide-text b{color:var(--em-700)}.gpt-guide-img{border-radius:var(--r);border:1px solid var(--line);width:100%;margin-bottom:20px;display:block}.modal-actions{gap:10px;display:flex}.modal-actions .btn-primary,.modal-actions .btn-ghost{flex:1;width:auto;margin-top:0}.nav-subitem.locked{cursor:not-allowed;opacity:.55}.nav-subitem.locked:hover{background:0 0}.nav-subitem.locked .nav-subicon{filter:grayscale(.7)}.toggle-track.busy{opacity:.5;cursor:progress}.route-progress{background:var(--em-100);z-index:60;height:3px;position:sticky;top:0;overflow:hidden}.route-progress span{background:linear-gradient(90deg, var(--em-400), var(--em-600));border-radius:3px;width:35%;height:100%;animation:1.1s cubic-bezier(.4,0,.2,1) infinite routebar;position:absolute;top:0}.nav-spinner{border:2px solid #6f3fb340;border-top-color:var(--em-600);border-radius:50%;flex-shrink:0;width:14px;height:14px;margin-left:auto;animation:.6s linear infinite spin}.nav-item.active .nav-spinner{border-color:#fff #fff6 #fff6}.consent-form-link{text-align:center;border-radius:var(--r-sm);color:var(--em-700);border:1.5px solid var(--em-200);transition:background var(--transition);background:#fff;margin-top:10px;padding:11px;font-size:12.5px;font-weight:800;display:block}.consent-form-link:hover{background:var(--em-50)}.consult-fab{z-index:200;border-radius:var(--r-pill);background:linear-gradient(135deg, var(--gold-500), var(--gold-600));color:#fff;box-shadow:var(--sh-gold);cursor:pointer;transition:transform var(--spring), box-shadow var(--spring);align-items:center;gap:8px;padding:14px 22px 14px 17px;font-size:13.5px;font-weight:800;display:inline-flex;position:fixed;bottom:28px;right:28px}.consult-fab:hover{transform:translateY(-3px);box-shadow:0 16px 34px #ca8a0480}.consult-fab-icon{font-size:18px;line-height:1}.consult-fab-icon-img{object-fit:contain;border-radius:7px;width:24px;height:24px;display:inline-block}.consult-fab-label{white-space:nowrap}.auth-help{border-top:1px solid var(--line-soft);text-align:center;color:var(--ink-400);margin-top:18px;padding-top:16px;font-size:12.5px}.auth-help a{color:var(--em-600);font-weight:700}.auth-help a:hover{color:var(--em-700);text-decoration:underline}.sidebar-help-link{text-align:center;color:var(--ink-400);transition:color var(--transition);margin-top:10px;font-size:11.5px;display:block}.sidebar-help-link:hover{color:var(--em-600);text-decoration:underline}.sidebar-toggle,.sidebar-backdrop{display:none}@media (max-width:1024px){.topbar,.hero,.stats-bar,.section{padding-left:28px;padding-right:28px}.stats-bar,.section{margin-left:28px;margin-right:28px}.stats-bar{padding-left:0;padding-right:0}}@media (max-width:768px){.app-main{margin-left:0}.sidebar{transition:transform var(--spring);box-shadow:var(--sh-lg);transform:translate(-100%)}.sidebar.open{transform:none}.cards,.stats-bar{grid-template-columns:1fr}.hero{padding-top:32px}.topbar{padding-left:66px}.consult-fab-label{display:none}.consult-fab{padding:14px}.sidebar-toggle{z-index:110;border-radius:var(--r-sm);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);width:40px;height:40px;color:var(--ink-700);cursor:pointer;box-shadow:var(--sh-sm);background:#ffffffeb;justify-content:center;align-items:center;font-size:17px;display:inline-flex;position:fixed;top:14px;left:16px}.sidebar-backdrop.show{z-index:90;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f172a6b;display:block;position:fixed;inset:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.view-toggle{background:var(--em-50);border:1px solid var(--em-100);border-radius:var(--r-pill);gap:2px;padding:3px;display:inline-flex}.view-toggle button{color:var(--ink-500);border-radius:var(--r-pill);cursor:pointer;transition:background var(--spring), color var(--spring);background:0 0;border:none;padding:7px 14px;font-family:inherit;font-size:12px;font-weight:700}.view-toggle button.active{background:linear-gradient(135deg, var(--em-500), var(--em-600));color:#fff;box-shadow:var(--sh-sm)}.assign-current{background:linear-gradient(135deg, var(--em-600), var(--em-700));color:#fff;border-radius:var(--r-lg);box-shadow:var(--sh-em);padding:26px 28px;position:relative;overflow:hidden}.assign-current:after{content:"";pointer-events:none;background:radial-gradient(circle,#ffffff29,#0000 70%);width:180px;height:180px;position:absolute;top:-40px;right:-40px}.assign-current-top{align-items:center;gap:10px;margin-bottom:14px;display:flex}.assign-week-tag{font-family:var(--font-display);border-radius:var(--r-pill);background:#fff3;padding:4px 12px;font-size:12px;font-weight:800}.assign-dday{font-family:var(--font-display);border-radius:var(--r-pill);background:var(--gold-500);color:#3a2a00;padding:4px 12px;font-size:12px;font-weight:800}.assign-current-title{letter-spacing:-.4px;margin-bottom:8px;font-size:21px;font-weight:800}.assign-current-desc{color:#ffffffdb;max-width:600px;font-size:13.5px;line-height:1.7}.assign-current-due{color:#ffffffeb;margin-top:16px;font-size:12.5px;font-weight:600}.assign-list{flex-direction:column;gap:12px;display:flex}.assign-item{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-sm);transition:box-shadow var(--spring), border-color var(--spring);padding:20px 22px}.assign-item:hover{border-color:var(--em-200);box-shadow:var(--sh)}.assign-item-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.assign-item-titles{align-items:baseline;gap:10px;min-width:0;display:flex}.assign-week-no{font-family:var(--font-display);color:var(--em-600);flex-shrink:0;font-size:12px;font-weight:800}.assign-item-title{color:var(--ink-900);text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:700;overflow:hidden}.assign-item-due{color:var(--ink-400);margin-top:6px;font-size:11.5px}.assign-submitted{background:var(--em-50);border:1px solid var(--em-100);border-radius:var(--r-sm);flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:14px;padding:12px 14px;display:flex}.assign-link{color:var(--em-700);word-break:break-all;font-size:12.5px;font-weight:600}.assign-link:hover{text-decoration:underline}.assign-submitted-at{color:var(--ink-400);white-space:nowrap;margin-left:auto;font-size:11px}.assign-del-x{border-radius:var(--r-sm);border:1px solid var(--em-200);width:24px;height:24px;color:var(--ink-400);cursor:pointer;background:#fff;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;line-height:1;transition:border-color .15s,background .15s,color .15s;display:inline-flex}.assign-del-x:hover:not(:disabled){color:#dc2626;background:#fef2f2;border-color:#fca5a5}.assign-del-x:disabled{opacity:.5;cursor:not-allowed}.assign-del-confirm{border-radius:var(--r-sm);background:#fef2f2;border:1.5px solid #fecaca;margin-top:12px;padding:14px 16px}.assign-del-warn{color:#b91c1c;font-size:12.5px;line-height:1.75}.assign-del-warn b{color:#991b1b}.assign-del-actions{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.assign-del-confirm-btn{border-radius:var(--r-sm);color:#fff;cursor:pointer;background:#dc2626;border:none;padding:11px 20px;font-family:inherit;font-size:12.5px;font-weight:700;transition:background .15s}.assign-del-confirm-btn:hover:not(:disabled){background:#b91c1c}.assign-del-confirm-btn:disabled{opacity:.6;cursor:not-allowed}.assign-form{gap:8px;margin-top:14px;display:flex}.assign-form .field-input{flex:1}.assign-form .btn-inline{white-space:nowrap;flex-shrink:0}.assign-file-form{margin-top:8px}.assign-file-input{cursor:pointer;padding:8px 12px;font-size:12.5px}.assign-file-input::file-selector-button{border-radius:var(--r-sm);border:1px solid var(--em-200);background:var(--em-50);color:var(--em-700);cursor:pointer;margin-right:10px;padding:6px 12px;font-family:inherit;font-size:12px;font-weight:700}.assign-file-input::file-selector-button:hover{background:var(--em-100)}.assign-submit-box{flex-direction:column;gap:10px;margin-top:14px;display:flex}.assign-submit-box .field-input{width:100%}.assign-submit-btn{align-self:flex-end;width:auto;padding:11px 28px}.assign-file-hint{color:var(--ink-400);font-size:11px}.assign-keep-notice{color:var(--gold-600);background:var(--gold-100);border:1px solid var(--gold-300);border-radius:var(--r-sm);padding:8px 11px;font-size:11.5px;line-height:1.6}.assign-file-error{margin-top:2px;font-weight:600}.assign-pick-all{color:var(--ink-700);cursor:pointer;align-items:center;gap:8px;margin:12px 0 6px;font-size:12.5px;font-weight:700;display:flex}.assign-pick-list{border:1px solid var(--line);border-radius:var(--r-sm);flex-direction:column;gap:2px;max-height:280px;padding:6px;display:flex;overflow-y:auto}.assign-pick-item{border-radius:var(--r-sm);cursor:pointer;align-items:center;gap:10px;padding:7px 8px;display:flex}.assign-pick-item:hover{background:var(--em-50)}.assign-pick-no{color:var(--em-700);flex-shrink:0;min-width:40px;font-size:11px;font-weight:800}.assign-pick-title{color:var(--ink-700);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.assign-pick-all input,.assign-pick-item input{accent-color:var(--em-500);flex-shrink:0;width:15px;height:15px}.assign-or{color:var(--ink-300);align-items:center;gap:10px;font-size:11px;font-weight:700;display:flex}.assign-or:before,.assign-or:after{content:"";background:var(--line);flex:1;height:1px}.assign-dropzone{cursor:pointer;border:1.5px dashed var(--em-300);border-radius:var(--r-lg);background:var(--em-50);justify-content:center;align-items:center;min-height:92px;padding:16px;transition:border-color .15s,background .15s,transform 50ms;display:flex}.assign-dropzone:hover{border-color:var(--em-400);background:var(--em-100)}.assign-dropzone.is-drag{border-color:var(--em-500);background:var(--em-100);border-style:solid}.assign-dropzone.has-file{border-style:solid;border-color:var(--em-400);cursor:default;background:#fff}.assign-dropzone:focus-visible{outline:2px solid var(--em-400);outline-offset:2px}.assign-dropzone-empty{text-align:center;pointer-events:none;flex-direction:column;align-items:center;gap:4px;display:flex}.assign-dropzone-icon{font-size:20px}.assign-dropzone-main{color:var(--ink-600);font-size:13px}.assign-dropzone-main b{color:var(--em-700)}.assign-dropzone-file{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;display:flex}.assign-dropzone-name{color:var(--ink-800);word-break:break-all;font-size:13px;font-weight:700}.assign-dropzone-clear{border-radius:var(--r-sm);border:1px solid var(--line);color:var(--ink-500);cursor:pointer;background:#fff;flex-shrink:0;padding:5px 12px;font-size:11px;font-weight:700}.assign-dropzone-clear:hover{color:#dc2626;background:#fef2f2;border-color:#fca5a5}.assign-missed{color:var(--ink-500);border:1px dashed var(--line);border-radius:var(--r-sm);background:#f8fafc;margin-top:14px;padding:12px 14px;font-size:12.5px}.assign-admin-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:14px;margin-bottom:18px;display:flex}.assign-week-select{flex-direction:column;flex:1;gap:6px;min-width:280px;display:flex}.assign-week-select label{color:var(--ink-600);font-size:11.5px;font-weight:700}.wsel{position:relative}.wsel-trigger{text-align:left;border:1.5px solid var(--line);border-radius:var(--r-sm);width:100%;color:var(--ink-800);cursor:pointer;background:#fff;align-items:center;gap:10px;padding:11px 14px;font-family:inherit;font-size:13px;transition:border-color .15s,box-shadow .15s;display:flex}.wsel-trigger:hover:not(:disabled){border-color:var(--em-300)}.wsel-trigger.open{border-color:var(--em-400);box-shadow:0 0 0 4px #6f3fb31f}.wsel-trigger:disabled{opacity:.5;cursor:not-allowed}.wsel-current{flex:1;align-items:center;gap:8px;display:flex;overflow:hidden}.wsel-current.muted{color:var(--ink-400)}.wsel-no{color:var(--em-700);background:var(--em-50);border-radius:var(--r-pill);flex-shrink:0;padding:2px 9px;font-size:11px;font-weight:800}.wsel-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.wsel-caret{color:var(--ink-400);flex-shrink:0;margin-left:auto;font-size:10px;transition:transform .15s}.wsel-trigger.open .wsel-caret{transform:rotate(180deg)}.wsel-pop{z-index:40;border:1px solid var(--line);border-radius:var(--r);max-height:300px;box-shadow:var(--sh-lg);animation:fadeUp .18s var(--spring) both;background:#fff;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto}.wsel-item{border-radius:var(--r-sm);cursor:pointer;align-items:center;gap:10px;padding:9px 10px;display:flex}.wsel-item:hover,.wsel-item.active{background:var(--em-50)}.wsel-item.active .wsel-title{color:var(--em-700);font-weight:700}.wsel-check{color:var(--em-600);flex-shrink:0;margin-left:auto;font-weight:800}.assign-toolbar-right{align-items:center;gap:8px;display:flex}.assign-manage{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-sm);margin-bottom:18px;padding:20px 22px}.assign-manage-title{color:var(--ink-900);margin-bottom:14px;font-size:14px;font-weight:800}.assign-manage-form{grid-template-columns:1.4fr 1.6fr auto auto;gap:8px;display:grid}.assign-date{cursor:pointer}.assign-manage-hint{color:var(--ink-400);margin-top:8px;font-size:11px}.assign-manage-list{border-top:1px solid var(--line-soft);flex-direction:column;gap:2px;margin-top:16px;padding-top:12px;display:flex}.assign-manage-row{align-items:center;gap:12px;padding:8px 4px;font-size:12.5px;display:flex}.assign-manage-rowtitle{color:var(--ink-800);text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:600;overflow:hidden}.assign-manage-rowdue{color:var(--ink-400);white-space:nowrap;font-size:11.5px}.assign-week-edit{color:var(--ink-500);cursor:pointer;transition:color var(--transition), background var(--transition);background:0 0;border:none;border-radius:6px;flex-shrink:0;padding:4px 8px;font-family:inherit;font-size:11px;font-weight:700}.assign-week-edit:hover{color:var(--em-700);background:var(--em-50)}.assign-week-del{color:var(--ink-400);cursor:pointer;transition:color var(--transition), background var(--transition);background:0 0;border:none;border-radius:6px;flex-shrink:0;padding:4px 8px;font-family:inherit;font-size:11px;font-weight:700}.assign-week-del:hover{color:#dc2626;background:#fef2f2}.assign-manage-row.editing{background:var(--em-50);border-radius:var(--r-sm)}.assign-manage-row.is-new{border-radius:var(--r-sm);background:#fffbeb}.assign-new-badge{font-family:var(--font-display);border-radius:var(--r-pill);background:var(--gold-100);color:var(--gold-600);vertical-align:middle;margin-left:8px;padding:1px 6px;font-size:9px;font-weight:800}.assign-edit-cancel{color:var(--em-700);cursor:pointer;background:0 0;border:none;margin-left:10px;font-family:inherit;font-size:11px;font-weight:700;text-decoration:underline}.assign-save-bar{border-top:1.5px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:18px;padding-top:16px;display:flex}.assign-save-status{color:var(--ink-400);font-size:12.5px;font-weight:600}.assign-save-status.dirty{color:var(--gold-600)}.assign-save-actions{gap:8px;display:flex}.assign-save-revert,.assign-save-btn{width:auto;margin-top:0;padding:11px 22px}.assign-active-cell{flex-shrink:0;align-items:center;gap:8px;display:inline-flex}.assign-switch{border-radius:var(--r-pill);background:var(--ink-300);cursor:pointer;width:46px;height:26px;transition:background var(--spring);border:none;flex-shrink:0;padding:0;position:relative;box-shadow:inset 0 1px 2px #2714421f}.assign-switch:after{content:"";width:20px;height:20px;transition:transform var(--spring);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000047}.assign-switch:before{content:"";position:absolute;inset:-9px}.assign-switch.on{background:linear-gradient(135deg, var(--em-500), var(--em-600));box-shadow:var(--sh-em)}.assign-switch.on:after{transform:translate(20px)}.assign-switch:focus-visible{outline:none;box-shadow:0 0 0 4px #6f3fb347}.assign-switch.is-disabled,.assign-switch:disabled{opacity:.4;cursor:not-allowed;background:var(--ink-300);box-shadow:none}.assign-active-label{color:var(--ink-400);min-width:30px;transition:color var(--transition);font-size:11.5px;font-weight:700}.assign-active-label.on{color:var(--em-700)}.assign-active-tag{white-space:nowrap;border-radius:var(--r-pill);padding:2px 9px;font-size:11px;font-weight:700}.assign-active-tag.current{color:var(--em-700);background:var(--em-50)}.assign-active-tag.muted{color:var(--ink-300)}.assign-manage-listhead{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:12px;margin-bottom:4px;padding:6px 4px 8px;display:flex}.assign-check{color:var(--ink-600);cursor:pointer;align-items:center;gap:8px;font-size:12px;font-weight:700;display:inline-flex}.assign-bulk-del{color:#dc2626;border-radius:var(--r-sm);cursor:pointer;transition:background var(--transition);background:#fef2f2;border:1px solid #fecaca;padding:7px 14px;font-family:inherit;font-size:11.5px;font-weight:700}.assign-bulk-del:hover{background:#fee2e2}.assign-check input,.assign-row-check{width:16px;height:16px;accent-color:var(--em-500);cursor:pointer;flex-shrink:0}.assign-row-check{margin-right:2px}.dp-pop.dp-right{left:auto;right:0}.assign-table-summary{color:var(--ink-500);margin-bottom:12px;font-size:12.5px}.table-wrap{border:1px solid var(--line);border-radius:var(--r);max-height:min(56vh,720px);box-shadow:var(--sh-sm);background:var(--surface);overflow:auto}.assign-table{border-collapse:separate;border-spacing:0;width:100%;min-width:640px}.assign-table thead th{z-index:2;text-align:left;color:var(--ink-500);letter-spacing:.3px;text-transform:uppercase;background:var(--em-50);box-shadow:inset 0 -1px 0 var(--line);white-space:nowrap;padding:14px 16px;font-size:11px;font-weight:700;position:sticky;top:0}.assign-table tbody td{border-bottom:1px solid var(--line-soft);vertical-align:middle;padding:14px 16px;font-size:13px}.assign-table tbody tr:last-child td{border-bottom:none}.assign-table tbody tr{transition:background var(--transition)}.assign-table tbody tr:hover{background:var(--em-50)}.assign-td-name{color:var(--ink-900);font-weight:700}.assign-td-phone{color:var(--ink-400);font-variant-numeric:tabular-nums;margin-top:2px;font-size:11px}.assign-td-muted{color:var(--ink-400);font-variant-numeric:tabular-nums}.assign-link-btn{color:var(--em-700);border:1px solid var(--em-200);border-radius:var(--r-pill);background:var(--em-50);transition:background var(--transition);white-space:nowrap;padding:5px 12px;font-size:12px;font-weight:700;display:inline-block}.assign-link-btn:hover{background:var(--em-100)}.assign-comment-btn{text-align:left;border-radius:var(--r-sm);border:1px solid var(--line);width:100%;max-width:360px;color:var(--ink-600);cursor:pointer;white-space:normal;word-break:keep-all;overflow-wrap:anywhere;transition:border-color var(--transition), background var(--transition), color var(--transition);background:#fff;padding:8px 12px;font-family:inherit;font-size:12px;font-weight:600;line-height:1.5}.assign-comment-btn:hover{border-color:var(--em-200);background:var(--em-50);color:var(--em-700)}.assign-toast{z-index:400;border-radius:var(--r-pill);background:var(--ink-900);color:#fff;box-shadow:var(--sh-lg);animation:fadeUp .3s var(--spring) both;padding:13px 22px;font-size:13px;font-weight:600;position:fixed;bottom:32px;left:50%;transform:translate(-50%)}@media (max-width:768px){.assign-admin-toolbar{align-items:stretch}.assign-week-select{min-width:0}.assign-toolbar-right{justify-content:space-between}.assign-manage-form{grid-template-columns:1fr}.assign-form{flex-direction:column}.assign-form .btn-inline{width:100%}.view-toggle button{padding:6px 10px;font-size:11px}.assign-comment-btn{max-width:160px}}.dp{width:100%;display:inline-block;position:relative}.dp-trigger{width:100%;color:var(--ink-900);border:1.5px solid var(--line);border-radius:var(--r-sm);cursor:pointer;transition:border-color var(--transition), box-shadow var(--transition);background:#fff;justify-content:space-between;align-items:center;gap:8px;padding:13px 15px;font-family:inherit;font-size:14px;display:flex}.dp-trigger:hover{border-color:var(--em-200)}.dp-trigger:focus-visible{border-color:var(--em-400);outline:none;box-shadow:0 0 0 4px #6f3fb324}.dp-trigger.is-empty{color:var(--ink-400)}.dp-trigger-icon{opacity:.8;font-size:15px}.dp-pop{z-index:320;border:1px solid var(--line);border-radius:var(--r-lg);width:300px;max-width:calc(100vw - 32px);box-shadow:var(--sh-lg);animation:fadeUp .2s var(--spring) both;background:#fff;padding:16px;position:absolute;top:calc(100% + 8px);left:0;right:auto}.dp-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.dp-month{font-family:var(--font-display);color:var(--ink-900);font-size:15px;font-weight:800}.dp-nav{gap:4px;display:flex}.dp-nav button{border-radius:var(--r-sm);border:1px solid var(--line);width:30px;height:30px;color:var(--ink-600);cursor:pointer;transition:background var(--transition), border-color var(--transition), color var(--transition);background:#fff;justify-content:center;align-items:center;font-size:14px;display:inline-flex}.dp-nav button:hover{background:var(--em-50);border-color:var(--em-200);color:var(--em-700)}.dp-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.dp-dow{margin-bottom:4px}.dp-dow-cell{text-align:center;color:var(--ink-400);padding:4px 0;font-size:11px;font-weight:700}.dp-dow-cell.sun{color:#e1554f}.dp-dow-cell.sat{color:#2f6df0}.dp-day{aspect-ratio:1;cursor:pointer;font-family:var(--font-display);color:var(--ink-800);border-radius:var(--r-sm);transition:background var(--transition), color var(--transition);background:0 0;border:none;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:inline-flex}.dp-day:hover{background:var(--em-50);color:var(--em-700)}.dp-day.sun{color:#e1554f}.dp-day.sat{color:#2f6df0}.dp-day.outside{color:var(--ink-300);opacity:.7}.dp-day.today{box-shadow:inset 0 0 0 1.5px var(--em-300)}.dp-day.selected,.dp-day.selected:hover{background:linear-gradient(135deg, var(--em-500), var(--em-600));color:#fff;box-shadow:var(--sh-em)}.dp-foot{border-top:1px solid var(--line-soft);justify-content:space-between;align-items:center;margin-top:12px;padding-top:12px;display:flex}.dp-clear,.dp-today{cursor:pointer;background:0 0;border:none;padding:4px 6px;font-family:inherit;font-size:12.5px;font-weight:700}.dp-clear{color:var(--ink-400)}.dp-clear:hover{color:var(--ink-600)}.dp-today{color:var(--em-600)}.dp-today:hover{color:var(--em-700)}.assign-bulk-form{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.assign-bulk-field{flex-direction:column;gap:6px;display:flex}.assign-bulk-field>label{color:var(--ink-600);font-size:11.5px;font-weight:700}.assign-bulk-field:nth-child(2){flex:1;min-width:220px}.assign-week-input{align-items:center;gap:8px;display:flex}.assign-week-input .field-input{text-align:center;width:92px}.assign-week-input span{color:var(--ink-600);font-size:13px;font-weight:600}.assign-bulk-btn{flex-shrink:0;width:auto;padding:13px 24px}.assign-manage-divider{background:var(--line-soft);height:1px;margin:22px 0}@media (max-width:768px){.assign-bulk-form{align-items:stretch}.assign-bulk-field:nth-child(2){min-width:0}.assign-bulk-btn{width:100%}}
