:root{--bg: #f4f6fa;--card: #ffffff;--ink: #2b3040;--muted: #8a92a6;--chip: #f2f4f8;--line: #e7e8ed;--accent: #530f65;--accent-soft: #f0e6f6;--accent-deep: #3d0a4a;--track-pink: #e65a96;--track-teal: #12b5a2;--track-blue: #4696fa;--track-orange: #fa8232;--track-purple: #d282e6;--track-green: #22c55e;--track-amber: #f59e0b;--track-cyan: #06b6d4;--track-indigo: #6366f1;--track-slate: #64748b;--radius: 22px;--shadow: 0 12px 30px rgba(43, 48, 64, .06)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Poppins,Segoe UI,Tahoma,Arial,sans-serif;background:var(--bg);color:var(--ink);min-height:100vh}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(circle 34px at 7% 14%,rgba(255,255,255,.9),transparent 100%),radial-gradient(circle 13px at 16% 7%,rgba(255,255,255,.95),transparent 100%),radial-gradient(circle 20px at 93% 12%,rgba(255,255,255,.85),transparent 100%),radial-gradient(circle 11px at 86% 6%,rgba(255,255,255,.95),transparent 100%),radial-gradient(circle 28px at 5% 82%,rgba(255,255,255,.75),transparent 100%),radial-gradient(circle 14px at 96% 78%,rgba(255,255,255,.85),transparent 100%)}.app{position:relative;z-index:1}button{font-family:inherit;border:0;background:none;cursor:pointer}.header{position:relative;height:84px;display:flex;align-items:center}.logo-zone{position:absolute;left:28px;display:flex;align-items:center;gap:10px}.logo-img{height:54px;width:auto;display:block}.logo-name{font-weight:800;font-size:18px;letter-spacing:1px;color:var(--ink)}.logo-name small{display:block;font-size:8px;letter-spacing:3px;color:var(--muted);font-weight:600}.nav-wrap{position:absolute;left:50%;transform:translate(-50%)}.nav{display:flex;align-items:center;gap:6px;background:var(--card);border-radius:999px;padding:7px 10px;box-shadow:var(--shadow)}.nav button{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:13.5px;font-weight:700;padding:9px 18px;border-radius:999px;transition:.2s}.nav button:hover{background:var(--accent-soft);color:var(--accent-deep)}.nav button.active{background:var(--accent);color:#fff;box-shadow:0 6px 16px #530f6559}.nav .ic{width:8px;height:8px;border-radius:3px;background:var(--accent)}.nav button.active .ic{background:#fff;border-radius:50%}.spark{position:absolute;border-radius:2px}.spark.s1{width:7px;height:7px;background:var(--accent);top:-12px;right:34px;transform:rotate(45deg)}.spark.s2{width:5px;height:5px;background:var(--track-orange);bottom:-10px;left:60px;border-radius:50%}.spark.s3{width:6px;height:6px;border:2px solid var(--track-teal);top:-10px;left:110px;border-radius:50%;background:transparent}.spark.s4{width:8px;height:8px;background:var(--accent-soft);bottom:-12px;right:90px;transform:rotate(45deg)}.header-tools{position:absolute;right:28px;display:flex;align-items:center;gap:10px}.mode-toggle{display:flex;background:var(--card);border-radius:999px;padding:4px;box-shadow:var(--shadow)}.mode-toggle button{font-size:12px;font-weight:700;padding:6px 14px;border-radius:999px;color:var(--muted)}.mode-toggle button.on{background:var(--accent-soft);color:var(--accent-deep)}.avatar{width:38px;height:38px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px}.main{padding-top:10px}.toolbar{max-width:1480px;margin:0 auto 14px;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}.tabs{display:flex;align-items:center;gap:8px;background:var(--card);padding:8px;border-radius:18px;box-shadow:var(--shadow);overflow-x:auto;max-width:74%}.tab{white-space:nowrap;font-size:13.5px;font-weight:700;color:var(--muted);padding:10px 20px;border-radius:12px;transition:.15s;border:2px solid transparent}.tab:hover{background:var(--chip)}.tab.on{background:var(--accent-soft);color:var(--accent-deep);border-color:var(--accent);box-shadow:0 4px 12px #530f652e}.tab .dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);margin-right:8px}.tab.no-match{color:var(--muted);cursor:default}.search{display:flex;align-items:center;gap:10px;background:var(--card);border-radius:999px;padding:12px 20px;box-shadow:var(--shadow);min-width:250px;flex:1;max-width:330px;border:2px solid transparent}.search:focus-within{border-color:var(--accent)}.search input{border:0;outline:0;background:transparent;font-family:inherit;font-size:13.5px;width:100%;color:var(--ink)}.search input::placeholder{color:var(--muted)}.grid-card{max-width:1480px;margin:0 auto 30px;padding:0 24px}.grid{display:grid;grid-template-columns:66px repeat(7,1fr);grid-auto-rows:64px;gap:8px;background:var(--card);padding:14px;border-radius:var(--radius);box-shadow:var(--shadow)}.dayh{text-align:center;font-size:14px;font-weight:800;color:var(--ink);padding:10px 0;border-radius:12px;background:var(--chip)}.dayh small{display:block;font-size:10px;font-weight:600;color:var(--muted);margin-top:2px}.hour{display:flex;align-items:flex-start;justify-content:center;font-size:12px;font-weight:700;color:var(--muted);padding-top:8px}.cell{border-radius:12px;background:#fafbfd;border:1.5px dashed #e1e4ec;cursor:pointer;transition:.15s}.cell:hover{background:var(--accent-soft);border-color:var(--accent);transform:scale(1.02)}.ses{--edge: var(--accent);position:relative;z-index:2;border-radius:14px;background:var(--card);border:1px solid var(--line);border-right:3px solid var(--edge);padding:8px 10px;cursor:pointer;overflow:hidden;box-shadow:0 4px 12px #2b30400d;transition:.15s;display:flex;flex-direction:column;gap:6px}.ses:hover{transform:translateY(-2px);box-shadow:0 10px 22px #2b30401a}.card-x{position:absolute;top:6px;right:7px;width:18px;height:18px;border-radius:50%;background:#ffffffe6;border:1px solid var(--line);color:var(--muted);font-size:13px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:3;transition:.15s}.card-x:hover{background:#e5484d;border-color:#e5484d;color:#fff;transform:scale(1.1)}.ses.compact .card-x{width:16px;height:16px;top:4px;right:5px;font-size:12px}.card-confirm{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;background:#fffffff7;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;cursor:default}.card-confirm span{font-size:11.5px;font-weight:800;color:var(--ink)}.cc-row{display:flex;gap:6px}.cc-yes,.cc-no{font-family:inherit;font-size:11px;font-weight:800;padding:5px 12px;border-radius:999px;cursor:pointer;transition:.15s}.cc-yes{background:#e5484d;color:#fff}.cc-yes:hover{transform:translateY(-1px);box-shadow:0 6px 14px #e5484d59}.cc-no{background:var(--chip);color:var(--muted)}.cc-no:hover{background:var(--line)}.ses-top{display:flex;align-items:center;gap:8px}.ses-icon{width:26px;height:26px;border-radius:50%;background:var(--edge);color:#fff;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;letter-spacing:.3px;flex-shrink:0}.ses-text{min-width:0}.ses .name{font-size:15px;font-weight:800;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ses .meta{font-size:12px;color:var(--muted);font-weight:600;margin-top:2px}.ses-foot{margin-top:auto}.ses .badge{display:inline-block;font-size:11px;font-weight:800;padding:3px 9px;border-radius:999px;background:var(--chip);color:var(--muted)}.node-row{display:flex;gap:8px;flex-wrap:wrap}.course-node{--nc: var(--accent);display:flex;align-items:center;gap:7px;padding:7px 12px;border-radius:999px;border:2px solid var(--nc);background:var(--card);color:var(--nc);font-family:inherit;font-size:13px;font-weight:800;cursor:pointer;transition:.15s}.course-node:hover{transform:translateY(-1px);box-shadow:0 6px 14px #2b30401a}.course-node.on{background:var(--nc);color:#fff;box-shadow:0 6px 14px #2b304024}.cn-ic{width:20px;height:20px;border-radius:50%;background:var(--nc);color:#fff;display:flex;align-items:center;justify-content:center;font-size:8px;font-weight:800}.course-node.on .cn-ic{background:#fff;color:var(--nc)}.pill-row{display:flex;gap:8px;flex-wrap:wrap}.sel-pill{padding:7px 13px;border-radius:999px;border:1.5px solid var(--line);background:var(--card);color:var(--ink);font-family:inherit;font-size:12.5px;font-weight:700;cursor:pointer;transition:.15s}.sel-pill:hover{border-color:var(--accent);transform:translateY(-1px)}.sel-pill.on{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 4px 12px #530f6540}.summary-chip{display:inline-block;margin-top:9px;padding:6px 12px;border-radius:9px;background:var(--accent-soft);color:var(--accent-deep);font-size:12px;font-weight:800}.ses.makeup{--fill: color-mix(in srgb, var(--edge) 84%, black);background:var(--fill);border-color:var(--fill);border-right-color:var(--fill)}.ses.makeup .name{color:#fff}.ses.makeup .meta{color:#ffffffe0}.ses.makeup .ses-icon{background:#fff;color:var(--fill)}.ses.makeup .badge{background:#e5484d;color:#fff}.ses.compact{gap:3px;padding:5px 8px}.ses.compact .ses-icon{width:19px;height:19px;font-size:7.5px}.ses.compact .name{font-size:11.5px}.ses.compact .meta{display:none}.ses.compact .badge{font-size:7.5px;padding:2px 7px}.tools-right{display:flex;align-items:center;gap:12px;flex:1;max-width:400px}.add-btn{width:44px;height:44px;border-radius:14px;background:var(--accent);color:#fff;font-size:22px;font-weight:700;line-height:1;box-shadow:0 8px 18px #530f6559;flex-shrink:0;transition:.15s}.add-btn:hover{transform:translateY(-2px);box-shadow:0 12px 24px #530f6573}.cell.closing{cursor:default}.cell.closing:hover{transform:none}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#2b304073;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:50;padding:20px}.modal{background:var(--card);border-radius:22px;width:100%;max-width:520px;box-shadow:0 30px 80px #2b304040;overflow:hidden}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--line)}.modal-head h2{font-size:17px;font-weight:800;color:var(--ink)}.modal-sub{margin-top:3px;font-size:13px;font-weight:700;color:var(--accent)}.modal-close{width:32px;height:32px;border-radius:10px;background:var(--chip);color:var(--muted);font-size:18px;line-height:1;transition:.15s}.modal-close:hover{background:var(--accent-soft);color:var(--accent-deep)}.modal-body{padding:18px 22px;display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1 / -1}.field label{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}.field select,.field input{font-family:inherit;font-size:13.5px;color:var(--ink);background:var(--chip);border:1.5px solid transparent;border-radius:12px;padding:10px 12px;outline:none;width:100%}.field select:focus,.field input:focus{border-color:var(--accent);background:var(--card)}.field select:disabled{opacity:.6;cursor:not-allowed}.type-row{display:flex;gap:8px}.type-pill{flex:1;padding:10px;border-radius:12px;font-size:13.5px;font-weight:700;color:var(--muted);background:var(--chip);border:1.5px solid transparent;transition:.15s}.type-pill.on{background:var(--accent-soft);color:var(--accent-deep);border-color:var(--accent)}.modal-error{grid-column:1 / -1;background:#fdecea;color:#c0392b;font-size:13px;font-weight:700;padding:10px 12px;border-radius:12px}.modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:16px 22px;border-top:1px solid var(--line)}.btn{padding:11px 22px;border-radius:12px;font-size:14px;font-weight:700;transition:.15s}.btn.ghost{background:var(--chip);color:var(--muted)}.btn.ghost:hover{background:var(--line)}.btn.primary{background:var(--accent);color:#fff;box-shadow:0 8px 18px #530f654d}.btn.primary:hover{transform:translateY(-1px)}.btn.danger{background:#e5484d;color:#fff;box-shadow:0 8px 18px #e5484d4d}.btn.danger:hover{transform:translateY(-1px)}.btn.danger.ghost{background:transparent;color:#e5484d;border:1.5px solid #e5484d;box-shadow:none}.btn.danger.ghost:hover{background:#fdecec;transform:none}.modal-foot .btn.danger{margin-right:auto}.foot-right{display:flex;gap:10px}.readonly-chip{background:var(--chip);border-radius:12px;padding:10px 12px;font-size:13.5px;font-weight:700;color:var(--ink)}.modal-hint{grid-column:1 / -1;font-size:13px;color:var(--muted);font-weight:600}.modal-sm{max-width:420px}.page-head{max-width:1480px;margin:16px auto 20px;padding:0 24px}.page-head h2{font-size:21px;font-weight:800;color:var(--ink)}.page-head p{margin-top:5px;font-size:13.5px;color:var(--muted);font-weight:600}.eng-grid{max-width:1480px;margin:0 auto 30px;padding:0 24px;display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:14px}.eng-card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:0 4px 12px #2b30400d}.eng-top{display:flex;align-items:center;gap:10px}.eng-name{flex:1;min-width:0;font-family:inherit;font-size:14.5px;font-weight:800;color:var(--ink);background:var(--chip);border:1.5px solid transparent;border-radius:10px;padding:9px 12px}.eng-name:focus{outline:none;border-color:var(--accent);background:var(--card)}.team-pill{font-size:10px;font-weight:800;padding:5px 11px;border-radius:999px;letter-spacing:.3px;text-transform:uppercase;flex-shrink:0}.team-pill.programming{background:var(--accent-soft);color:var(--accent)}.team-pill.robotics{background:#e7f8ee;color:#16a34a}.team-pill.kits{background:#fef3e2;color:#d97706}.card-x.static{position:static}.eng-label{margin-top:13px;margin-bottom:8px;font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.day-row{display:flex;gap:6px;flex-wrap:wrap}.day-chip{font-family:inherit;padding:6px 11px;border-radius:999px;border:1.5px solid var(--line);background:var(--card);color:var(--muted);font-size:11.5px;font-weight:700;cursor:pointer;transition:.15s}.day-chip:hover{border-color:#e5484d;transform:translateY(-1px)}.day-chip.on{background:#e5484d;border-color:#e5484d;color:#fff}.eng-confirm{margin-top:12px;padding:11px 13px;border-radius:12px;background:#fdecec;display:flex;flex-direction:column;gap:9px}.eng-confirm span{font-size:12px;font-weight:700;color:var(--ink)}.catalog{max-width:1480px;margin:0 auto 30px;padding:0 24px;display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px}.cat-card{--cc: var(--accent);position:relative;background:var(--card);border:1px solid var(--line);border-top:4px solid var(--cc);border-radius:16px;padding:16px;box-shadow:0 4px 12px #2b30400d}.cat-title-input{font-family:inherit;font-size:16px;font-weight:800;color:var(--ink);background:transparent;border:1.5px solid transparent;border-radius:9px;padding:5px 9px;min-width:0;width:100%}.cat-title-input:hover{background:var(--chip)}.cat-title-input:focus{outline:none;border-color:var(--accent);background:var(--card)}.cat-card .card-x{top:-10px;right:-8px;background:var(--card);box-shadow:0 4px 10px #2b30401f}.cat-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}.cat-ic{width:28px;height:28px;border-radius:50%;background:var(--cc);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;flex-shrink:0}.cat-head h3{font-size:16px;font-weight:800;color:var(--ink)}.cat-count{margin-left:auto;font-size:9.5px;font-weight:800;color:var(--muted);background:var(--chip);padding:4px 11px;border-radius:999px}.cat-card ul{list-style:none;display:flex;flex-direction:column;gap:6px}.cat-card li{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:13px;font-weight:700;color:var(--ink);background:var(--chip);padding:8px 11px;border-radius:9px}.cat-card li span{color:var(--muted);font-size:11px;font-weight:700;white-space:nowrap}.filter-bar{max-width:1480px;margin:12px auto 18px;padding:0 24px}.lvl-row{flex-wrap:wrap}.lvl-name{flex:1;min-width:120px;font-family:inherit;font-size:13px;font-weight:700;color:var(--ink);background:var(--card);border:1.5px solid transparent;border-radius:8px;padding:7px 10px}.lvl-name:focus{outline:none;border-color:var(--accent)}.lvl-right{display:flex;align-items:center;gap:7px}.lvl-num{width:46px;font-family:inherit;font-size:12.5px;font-weight:800;color:var(--ink);background:var(--card);border:1.5px solid transparent;border-radius:8px;padding:6px 8px;text-align:center}.lvl-num:focus{outline:none;border-color:var(--accent)}.lvl-sess{font-size:9.5px;font-weight:700;color:var(--muted)}.lvl-confirm{width:100%}.cell.off{cursor:not-allowed;background:transparent}.off-col{z-index:1;border-radius:12px;background:repeating-linear-gradient(135deg,#f0e6f6b3 0,#f0e6f6b3 16px,#ddc6eeb3 16px,#ddc6eeb3 32px);display:flex;align-items:center;justify-content:center;overflow:hidden;pointer-events:none}.off-col span{transform:rotate(-38deg);font-size:34px;font-weight:800;color:#530f6580;letter-spacing:6px;text-transform:uppercase;white-space:nowrap}.type-pill.add{border-style:dashed;border-color:var(--accent);color:var(--accent);background:var(--card)}.type-pill.add:hover{background:var(--accent-soft)}.add-course-bar{display:flex;gap:10px;align-items:center;margin-top:-8px}.add-course-bar .eng-name{max-width:360px}.add-level-btn{margin-top:10px;width:100%;font-family:inherit;font-size:12px;font-weight:800;color:var(--accent);background:var(--accent-soft);border:1.5px dashed var(--accent);border-radius:10px;padding:9px 12px;cursor:pointer;transition:.15s}.add-level-btn:hover{transform:translateY(-1px);box-shadow:0 6px 14px #530f6526}.kit-grid{grid-template-columns:repeat(auto-fill,minmax(360px,1fr))}.kit-track-pill{font-size:11px;font-weight:800;color:var(--accent);background:var(--accent-soft);border-radius:999px;padding:7px 12px;letter-spacing:.2px;flex-shrink:0}.kit-levels{display:flex;flex-direction:column;gap:8px}.kit-level-row{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.kit-level-row select{font-family:inherit;font-size:12px;font-weight:700;color:var(--ink);background:var(--chip);border:1.5px solid transparent;border-radius:9px;padding:8px 10px;cursor:pointer;min-width:0;flex:1}.kit-level-row select:focus{outline:none;border-color:var(--accent);background:var(--card)}.kit-card .card-x.static{flex-shrink:0}.filter-side{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-left:auto;margin-top:12px}.f-select,.f-search{font-family:inherit;font-size:12.5px;font-weight:700;color:var(--ink);background:var(--card);border:1.5px solid var(--line);border-radius:11px;padding:10px 13px}.f-select:focus,.f-search:focus{outline:none;border-color:var(--accent)}.f-search{width:190px}.f-search::placeholder{color:var(--muted);font-weight:600}.gv-card{display:flex;flex-direction:column;gap:10px}.gv-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.gv-name{font-size:16px;font-weight:800;color:var(--ink)}.gv-sess{font-size:11px;font-weight:800;color:var(--accent);background:var(--accent-soft);padding:5px 11px;border-radius:999px;white-space:nowrap}.gv-level{--cc: var(--accent);display:flex;align-items:center;gap:9px;font-size:13.5px;font-weight:700;color:var(--ink)}.gv-finish{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--chip);border-radius:11px;padding:10px 12px;font-size:12.5px;font-weight:600;color:var(--ink);flex-wrap:wrap}.gv-left{font-size:11px;font-weight:800;color:var(--muted);white-space:nowrap}.gv-empty{grid-column:1 / -1;text-align:center;color:var(--muted);font-size:14px;font-weight:600;padding:40px 20px;background:var(--card);border:1.5px dashed var(--line);border-radius:16px}.gv-card .meet-chip{cursor:default}.gv-card .meet-chip:hover{transform:none}.meet-chip{font-family:inherit;padding:6px 11px;border-radius:999px;border:1.5px solid var(--line);background:var(--card);color:var(--muted);font-size:11.5px;font-weight:700;cursor:pointer;transition:.15s}.meet-chip.on{background:var(--accent);border-color:var(--accent);color:#fff}.kit-status-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.status-pill{font-size:11px;font-weight:800;padding:6px 12px;border-radius:999px;letter-spacing:.2px}.status-pill.available{background:#e7f8ee;color:#16a34a}.status-pill.competition{background:#fdecec;color:#e5484d}.comp-btn{font-family:inherit;font-size:11.5px;font-weight:800;padding:7px 13px;border-radius:999px;border:1.5px dashed var(--accent);color:var(--accent);background:var(--card);cursor:pointer;transition:.15s}.comp-btn:hover{background:var(--accent-soft);transform:translateY(-1px)}.kit-warn{margin-top:10px;padding:11px 13px;border-radius:12px;background:#fef3e2;color:#b45309;font-size:12px;font-weight:700}.use-list{margin-top:9px;display:flex;flex-direction:column;gap:6px}.use-group{background:var(--card);border-left:3px solid #f59e0b;border-radius:9px;padding:8px 10px;display:flex;flex-direction:column;gap:2px}.use-g-name{font-size:12px;font-weight:800;color:var(--ink)}.use-g-meta{font-size:11px;font-weight:700;color:var(--muted)}.ho-badge{margin-left:auto;flex-shrink:0;width:20px;height:20px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent);font-size:11px;font-weight:800;cursor:help}.ho-badge.warn{background:#fef3e2;color:#d97706}.ho-ic{font-size:15px;line-height:1.4}.ho-when{font-size:11px;font-weight:800;color:var(--muted);margin-bottom:3px}.ho-text{font-size:12.5px;font-weight:600;color:var(--ink);line-height:1.5}.dash-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.dash-card{background:var(--card);border:1.5px solid var(--line);border-radius:18px;padding:18px 20px;display:flex;flex-direction:column;gap:8px}.dash-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.dash-name{font-size:16px;font-weight:800;color:var(--ink)}.dash-group{background:var(--chip);border-left:3px solid var(--accent);border-radius:9px;padding:8px 10px;display:flex;flex-direction:column;gap:2px}.dash-none{font-size:12px;font-weight:700;color:var(--muted);padding:6px 2px}.dash-free{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;font-weight:700;color:var(--muted);background:var(--chip);border-radius:11px;padding:10px 12px;margin-top:4px}.dash-free b{color:var(--ink);font-size:13px}.dash-comp{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;font-weight:800;color:var(--ink);padding:2px}.switch{width:42px;height:23px;border-radius:999px;border:none;background:var(--line);position:relative;cursor:pointer;transition:.2s;padding:0}.switch .knob{position:absolute;top:2.5px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:.2s}.switch.on{background:var(--accent)}.switch.on .knob{left:21px}.switch.disabled{opacity:.55;cursor:not-allowed}.dash-lock-note{font-size:11px;font-weight:700;color:#b45309;background:#fef3e2;border-radius:9px;padding:8px 10px}.end-row{display:flex;align-items:center;gap:8px}.end-lvl{flex:1;min-width:0;font-size:12px;font-weight:800;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.end-date{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;color:var(--ink);white-space:nowrap}.end-tag{font-style:normal;font-size:8.5px;font-weight:800;color:var(--accent);background:var(--accent-soft);border-radius:999px;padding:2px 7px}.end-input{font-family:inherit;font-size:11px;font-weight:700;color:var(--ink);background:var(--chip);border:1.5px solid var(--line);border-radius:8px;padding:5px 7px;width:118px}.end-input:focus{outline:none;border-color:var(--accent)}.dayh.today{background:var(--accent-soft);border-radius:12px 12px 0 0;color:var(--accent)}.dayh.today small{color:var(--accent);font-weight:800}.ses.cancelled{background:var(--chip)}.resize-grip{position:absolute;left:0;right:0;bottom:0;height:8px;cursor:ns-resize;border-radius:0 0 13px 13px;z-index:3}.resize-grip:hover,.ses.resizing .resize-grip{background:#530f6538}.ses.resizing{z-index:5}.ses.cancelled .name,.ses.cancelled .meta{text-decoration:line-through;opacity:.75}.week-btn{font-family:inherit;width:100%;padding:10px 12px;border-radius:11px;border:1.5px solid var(--line);background:var(--chip);color:var(--ink);font-size:12px;font-weight:800;cursor:pointer;transition:.15s;text-align:left}.week-btn:hover{border-color:#e5484d;transform:translateY(-1px)}.week-btn.cancel{background:#fdecec;border-color:#e5484d;color:#c0392b}.offday-error{max-width:1480px;margin:0 auto 14px;padding:11px 24px;border-radius:12px;background:#fdecec;color:#c0392b;font-size:12.5px;font-weight:700;cursor:pointer}.stats-row{max-width:1480px;margin:0 auto 16px;padding:0 24px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stat{background:var(--card);border:1.5px solid var(--line);border-radius:14px;padding:12px 18px;display:flex;flex-direction:column;gap:2px;min-width:120px}.stat b{font-size:18px;font-weight:800;color:var(--ink)}.stat span{font-size:11px;font-weight:700;color:var(--muted)}.view-btn{font-family:inherit;font-size:12px;font-weight:800;padding:8px 14px;border-radius:999px;border:1.5px solid var(--line);background:var(--card);color:var(--muted);cursor:pointer;transition:.15s;white-space:nowrap}.view-btn:hover{border-color:var(--accent);transform:translateY(-1px)}.view-btn.on{background:var(--accent);border-color:var(--accent);color:#fff}.note-btn{margin-left:auto;flex-shrink:0;width:20px;height:20px;border-radius:999px;border:none;display:inline-flex;align-items:center;justify-content:center;background:var(--chip);color:var(--ink);font-size:11px;cursor:pointer;transition:.15s;padding:0}.note-btn:hover{background:var(--accent-soft);transform:translateY(-1px)}.note-pop{width:min(420px,92vw);background:var(--card);border-radius:18px;padding:18px 20px;display:flex;flex-direction:column;gap:12px}.np-head{display:flex;align-items:center;justify-content:space-between}.np-title{font-size:15px;font-weight:800;color:var(--ink)}.np-info{display:flex;flex-wrap:wrap;gap:6px}.np-chip{font-size:11px;font-weight:800;color:var(--accent);background:var(--accent-soft);border-radius:999px;padding:5px 11px}.np-note{background:var(--chip);border-radius:11px;padding:12px 14px;font-size:13px;font-weight:600;color:var(--ink);line-height:1.6;white-space:pre-wrap}.np-textarea{font-family:inherit;font-size:13px;font-weight:600;color:var(--ink);background:var(--chip);border:1.5px solid var(--line);border-radius:11px;padding:11px 13px;resize:vertical}.np-textarea:focus{outline:none;border-color:var(--accent)}.np-edit{font-family:inherit;align-self:flex-start;font-size:12px;font-weight:800;color:#fff;background:var(--accent);border:none;border-radius:10px;padding:9px 16px;cursor:pointer;transition:.15s}.np-edit:hover{transform:translateY(-1px)}[data-theme=dark]{--bg: #14161d;--card: #1c202b;--ink: #e9ebf3;--muted: #98a1b6;--chip: #262b38;--line: #333a4b;--accent: #a86cc4;--accent-soft: #382a45;--accent-deep: #d9b7ec;--shadow: 0 12px 30px rgba(0, 0, 0, .35)}[data-theme=dark] body:before{background:none}[data-theme=dark] .kit-warn,[data-theme=dark] .dash-lock-note,[data-theme=dark] .np-ho.warning,[data-theme=dark] .status-pill.inuse{background:#3a2f1f;color:#f0b357}[data-theme=dark] .offday-error,[data-theme=dark] .week-btn.cancel,[data-theme=dark] .modal-error{background:#3a2222;color:#ef9a95}[data-theme=dark] .status-pill.available{background:#1f3328;color:#6fd39a}[data-theme=dark] .status-pill.competition{background:#3a2222;color:#ef9a95}.status-pill.inuse{background:#fef3e2;color:#d97706}.comp-btn:disabled{border-style:solid;border-color:var(--line);color:var(--muted);background:var(--chip);cursor:not-allowed;transform:none;box-shadow:none}.sel-pill.locked{border:1.5px dashed #e5484d;color:#e5484d;background:#fdf1f1;cursor:not-allowed;opacity:.9}.sel-pill.locked:hover{transform:none;border-color:#e5484d}.course-node.locked{border-style:dashed;opacity:.6;filter:grayscale(.35);cursor:not-allowed}.course-node.locked:hover{transform:none;box-shadow:none}.modal{max-height:88vh;display:flex;flex-direction:column}.modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain}.modal-overlay{padding:16px}.mode-switch{display:none;gap:8px;max-width:1480px;margin:0 auto 12px;padding:0 24px}.mode-switch button{flex:1;padding:10px 14px;border-radius:999px;background:var(--card);color:var(--muted);font-size:13.5px;font-weight:800;box-shadow:var(--shadow);transition:.2s}.mode-switch button.on{background:var(--accent);color:#fff}.ml-days{display:flex;gap:8px;overflow-x:auto;max-width:1480px;margin:0 auto 12px;padding:0 24px 4px;scrollbar-width:none}.ml-days::-webkit-scrollbar{display:none}.ml-day{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 16px;border-radius:14px;background:var(--card);color:var(--muted);font-size:13px;font-weight:800;box-shadow:var(--shadow);transition:.2s;border:2px solid transparent}.ml-day small{font-size:10.5px;font-weight:600}.ml-day.today{border-color:var(--accent)}.ml-day.on{background:var(--accent);color:#fff}.ml-day.on small{color:#ffffffd9}.ml-list{max-width:1480px;margin:0 auto 30px;padding:0 24px;display:flex;flex-direction:column;gap:10px}.ml-row{display:flex;align-items:flex-start;gap:10px;background:var(--card);border:1px solid var(--border);border-left:4px solid var(--edge, #530F65);border-radius:16px;padding:12px 14px;box-shadow:var(--shadow);cursor:pointer;transition:.15s}.ml-row:hover{border-color:var(--edge, #530F65)}.ml-row.cancelled .ml-badge,.ml-row.cancelled .ml-name{opacity:.55;text-decoration:line-through}.ml-row.makeup{background:var(--edge, #530F65);border-color:var(--edge, #530F65)}.ml-row.makeup .ml-badge,.ml-row.makeup .ml-name,.ml-row.makeup .ml-meta{color:#fff}.ml-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.ml-badge{font-size:11px;font-weight:700;color:var(--muted)}.ml-name{font-size:15px;font-weight:800;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ml-meta{font-size:12.5px;color:var(--muted)}.ml-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:3px}.ml-cancel-badge{font-size:10.5px;font-weight:800;color:var(--danger);background:var(--danger-bg);border-radius:999px;padding:3px 9px}.ml-notes{margin-top:4px;font-size:14px}.ml-actions{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.ml-empty{background:var(--card);border:1px dashed var(--border);border-radius:16px;padding:26px;text-align:center;color:var(--muted);font-size:14px;font-weight:600}.ml-add{width:100%;padding:13px}@media(max-width:900px){.header{height:auto;flex-wrap:wrap;gap:10px;padding:14px 4px 4px}.logo-zone{position:static}.logo-img{height:42px}.nav-wrap{position:static;transform:none;width:100%;order:3;overflow-x:auto;scrollbar-width:none}.nav-wrap::-webkit-scrollbar{display:none}.spark{display:none}.nav{width:max-content;margin:0 auto}.nav button{padding:8px 13px;font-size:13px;white-space:nowrap}.header-tools{position:static;margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;width:100%;order:2}.mode-switch{display:flex}.stats-row{grid-template-columns:1fr}.filter-bar,.filter-side{flex-wrap:wrap;width:100%}.f-search,.f-select{width:100%}.grid-card{overflow-x:hidden;padding:0 12px}.grid{min-width:0;width:100%}body{overflow-x:hidden}.modal{max-width:100%;max-height:92vh;border-radius:18px}.main{padding-bottom:40px}.page-head h2{font-size:20px}.side{width:100%;position:static;transform:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin:0 0 14px;height:auto}}.tag{display:inline-block;font-size:11.5px;font-weight:700;padding:3px 10px;border-radius:999px;border:1px solid var(--line);background:var(--chip);color:var(--muted)}.tag.kit{color:var(--accent-deep);border-color:var(--accent);background:var(--accent-soft)}.grid.one-day{grid-template-columns:66px 1fr}.day-nav{display:flex;align-items:center;gap:10px;max-width:1480px;margin:0 auto 12px;padding:0 24px}.day-nav button{flex:0 0 auto;padding:11px 16px;border-radius:999px;background:var(--card);color:var(--accent-deep);font-size:13.5px;font-weight:800;box-shadow:var(--shadow);transition:.15s}.day-nav button:hover{background:var(--accent-soft)}.day-nav-label{flex:1;text-align:center;background:var(--accent);color:#fff;border-radius:14px;padding:9px 12px;font-size:15px;font-weight:800;box-shadow:0 6px 16px #530f6540}.day-nav-label small{display:block;font-size:11px;opacity:.85;font-weight:600}.auth-page{position:relative;z-index:1;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.auth-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:32px 28px 28px;width:100%;max-width:390px;text-align:center}.auth-logo{height:84px;width:auto;display:block;margin:0 auto 8px}.auth-brand{font-weight:800;font-size:18px;letter-spacing:.5px;color:var(--ink)}.auth-brand small{display:block;font-size:9px;letter-spacing:3px;color:var(--muted);font-weight:600;margin-top:2px}.auth-lead{margin:16px 0 18px;font-size:14px;color:var(--muted);line-height:1.6}.auth-google{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:12px 18px;border-radius:12px;background:var(--card);border:1.5px solid var(--line);font-size:14px;font-weight:700;color:var(--ink);box-shadow:0 4px 12px #2b30400f;transition:.15s}.auth-google:hover:not(:disabled){transform:translateY(-1px);border-color:var(--accent)}.auth-google:disabled{opacity:.7;cursor:progress}.auth-g{width:20px;height:20px}.auth-notice{margin-top:14px;padding:10px 12px;border-radius:10px;background:#e5484d1a;color:#e5484d;font-size:12.5px;font-weight:600;line-height:1.5;word-break:break-word}.auth-foot{margin-top:14px;font-size:12px;color:var(--muted)}.auth-icon{width:60px;height:60px;border-radius:50%;background:var(--accent-soft);display:flex;align-items:center;justify-content:center;font-size:27px;margin:0 auto 14px}.auth-title{font-size:20px;font-weight:800;color:var(--ink);margin-bottom:6px}.auth-text{color:var(--muted);font-size:13.5px;line-height:1.65;margin-bottom:20px}.auth-text b{color:var(--ink);word-break:break-all}.auth-title:has(+.auth-text:last-child)+.auth-text{margin-bottom:0}.auth-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.auth-spinner{width:46px;height:46px;border-radius:50%;border:4px solid var(--accent-soft);border-top-color:var(--accent);margin:4px auto 16px;animation:auth-spin 1s linear infinite}@keyframes auth-spin{to{transform:rotate(360deg)}}.acct{position:relative;display:flex;align-items:center;gap:9px;background:var(--card);border-radius:999px;padding:4px;box-shadow:var(--shadow)}.acct-avatar{width:30px;height:30px;border-radius:50%;background:var(--accent);color:#fff;font-size:13px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0}.acct-email{display:none;max-width:128px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:700;color:var(--ink)}.acct-out{display:none;font-size:12px;font-weight:800;color:var(--accent-deep);background:var(--accent-soft);border-radius:999px;padding:7px 12px;white-space:nowrap}.acct-out:hover{filter:brightness(.97)}.acct-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.acct-pop{position:absolute;top:calc(100% + 10px);right:0;z-index:41;width:250px;background:var(--card);border-radius:16px;box-shadow:0 16px 40px #2b304033;border:1px solid var(--line);padding:16px;text-align:left}.acct-pop-label{font-size:11px;font-weight:700;letter-spacing:.5px;color:var(--muted);text-transform:uppercase}.acct-pop-email{margin:4px 0 14px;font-size:13.5px;font-weight:700;color:var(--ink);word-break:break-all}.acct-pop-out{width:100%}@media(min-width:1760px){.acct{padding:4px 6px 4px 4px}.acct-email,.acct-out{display:block}}@media(max-width:900px){.auth-page{padding:16px;align-items:flex-start;padding-top:12vh}.acct-pop{right:0}}.acct-avatar{position:relative}.acct-badge{position:absolute;right:-2px;bottom:-2px;width:12px;height:12px;border-radius:50%;border:2px solid var(--card);background:#22c55e}.acct-badge.tone-busy{background:#f59e0b;animation:sync-pulse 1.1s ease-in-out infinite}.acct-badge.tone-wait{background:#f59e0b}.acct-badge.tone-bad{background:#e5484d}@keyframes sync-pulse{50%{opacity:.3}}.acct-sync{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.acct-sync-title{display:flex;align-items:center;gap:8px;margin-top:4px;font-size:14px;font-weight:800;color:var(--ink)}.acct-sync-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#22c55e;flex-shrink:0}.acct-sync-dot.tone-busy{background:#f59e0b;animation:sync-pulse 1.1s ease-in-out infinite}.acct-sync-dot.tone-wait{background:#f59e0b}.acct-sync-dot.tone-bad{background:#e5484d}.acct-sync-text{margin:6px 0 12px;font-size:12.5px;line-height:1.55;color:var(--muted);word-break:break-word}.upload-counts{grid-column:1 / -1;list-style:none;margin:0;padding:12px 16px;background:var(--chip);border-radius:12px;display:grid;gap:4px;font-size:14px;color:var(--ink)}.upload-foot{flex-direction:column;align-items:stretch;gap:8px}.upload-foot .btn{width:100%}.seg{display:inline-flex;gap:4px;background:var(--card);border:1.5px solid var(--line);border-radius:999px;padding:4px}.seg button{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:800;color:var(--muted);padding:8px 18px;border-radius:999px;transition:.15s}.seg button b{font-size:11px;font-weight:800;background:var(--chip);color:var(--muted);border-radius:999px;padding:2px 8px}.seg button.on{background:var(--accent);color:#fff;box-shadow:0 8px 18px #530f6540}.seg button.on b{background:#ffffff38;color:#fff}.acc-seg-bar{margin-top:0}.acc-wrap{max-width:1480px;margin:0 auto 30px;padding:0 24px}.acc-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.acc-count{font-size:13px;font-weight:700;color:var(--muted)}.acc-count b{color:var(--ink)}.acc-card{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:0 4px 12px #2b30400d;overflow:hidden}.acc-table{width:100%;border-collapse:collapse}.acc-table th{text-align:left;font-size:11px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:var(--muted);background:var(--chip);padding:12px 18px}.acc-table td{padding:12px 18px;border-top:1px solid var(--line);font-size:13.5px;font-weight:700;color:var(--ink);vertical-align:middle}.acc-table tr.off td:not(:last-child){opacity:.6}.acc-table tr.new td{background:var(--accent-soft)}.acc-table tr.new .role.engineer{background:var(--card)}.acc-table .mute,.acc-missing .mute{color:var(--muted)}.g-cell{display:flex;align-items:center;gap:10px}.g-av{width:30px;height:30px;border-radius:50%;background:var(--accent-soft);color:var(--accent-deep);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;flex-shrink:0}.you-chip{font-size:10px;font-weight:800;letter-spacing:.3px;background:transparent;border:1.5px solid var(--accent);color:var(--accent-deep);border-radius:999px;padding:1.5px 8px}.role{display:inline-block;font-size:12px;font-weight:800;border-radius:999px;padding:5px 12px}.role.admin{background:#fff4d6;color:#a16207}.role.engineer{background:var(--accent-soft);color:var(--accent-deep)}.role.manager{background:var(--accent);color:#fff}.always{font-size:12.5px;font-weight:800;color:var(--accent-deep)}.locked-note{font-size:12px;font-weight:800;color:var(--muted);padding:7px 4px}.warn-text{color:#d97706;font-weight:800}.status-pill.off{background:var(--chip);color:var(--muted)}.sw{position:relative;display:inline-block;width:38px;height:22px;border:0;padding:0;border-radius:999px;background:var(--line);flex-shrink:0;cursor:pointer;transition:.15s}.sw:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000040;transition:.15s}.sw.on{background:var(--accent)}.sw.on:after{left:19px}.sw.locked{opacity:.45}.sw:disabled{cursor:not-allowed}.sw-cell{display:flex;align-items:center;gap:9px}.sw-label{font-size:12px;font-weight:800;color:var(--muted)}.sw-row{display:flex;align-items:flex-start;gap:12px;background:var(--chip);border-radius:12px;padding:12px 14px}.sw-row .sw{margin-top:2px}.sw-text{display:flex;flex-direction:column;gap:3px;font-size:13.5px;font-weight:700;color:var(--ink)}.acc-actions{display:flex;gap:8px;justify-content:flex-end}.mini{font-size:12px;font-weight:800;padding:7px 12px;border-radius:10px;background:var(--chip);color:var(--ink);transition:.15s}.mini:hover{background:var(--accent-soft);color:var(--accent-deep)}.mini:disabled{opacity:.45;cursor:not-allowed}.acc-missing{margin-top:14px;font-size:13px;font-weight:600;color:var(--muted);display:flex;flex-wrap:wrap;align-items:center;gap:8px}.acc-missing b{color:var(--ink)}.chip-btn{font-size:12px;font-weight:800;padding:6px 12px;border-radius:999px;background:var(--card);border:1.5px solid var(--line);color:var(--ink)}.chip-btn:hover{border-color:var(--accent);color:var(--accent-deep)}.acc-note{margin-top:10px;font-size:12.5px;font-weight:600;color:var(--muted)}.acc-empty{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:0 4px 12px #2b30400d;padding:46px 24px;text-align:center;max-width:560px;margin:26px auto}.acc-empty-ic{font-size:34px;margin-bottom:10px}.acc-empty h3{font-size:18px;font-weight:800;color:var(--ink);margin-bottom:8px}.acc-empty p{font-size:13.5px;font-weight:600;color:var(--muted);line-height:1.6;margin-bottom:18px}.field-hint{font-size:12px;font-weight:600;color:var(--muted)}.type-pill:disabled{opacity:.55;cursor:not-allowed}.confirm-text{font-size:14px;font-weight:600;color:var(--ink);line-height:1.6}.confirm-text.soft{margin-top:10px;font-size:12.5px;color:var(--muted)}.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%);z-index:60;max-width:min(560px,calc(100vw - 32px));background:var(--ink);color:var(--card);font-size:13px;font-weight:700;line-height:1.5;padding:13px 18px;border-radius:14px;box-shadow:0 16px 40px #2b30404d}.toast.bad{background:#c0392b;color:#fff}.toast-undo{margin-left:8px;font-weight:800;color:inherit;text-decoration:underline;opacity:.9}[data-theme=dark] .role.admin{background:#3a3015;color:#fcd34d}@media(max-width:900px){.acc-wrap{padding:0 14px}.acc-toolbar{flex-wrap:wrap}.acc-card{background:transparent;border:0;box-shadow:none;overflow:visible}.acc-table,.acc-table tbody{display:block}.acc-table thead{display:none}.acc-table tr{display:grid;grid-template-columns:1fr auto;gap:8px 10px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 4px 12px #2b30400d;padding:12px 14px;margin-bottom:10px}.acc-table td{display:block;border:0;padding:0}.acc-table td:nth-child(1){grid-column:1 / -1}.acc-table td:nth-child(2){grid-column:1}.acc-table td:nth-child(3){grid-column:1;font-size:13px}.acc-table td:nth-child(3):has(>.mute){display:none}.acc-table td:nth-child(4){grid-column:1 / -1}.acc-table td:nth-child(4):has(>.mute){display:none}.acc-table td:nth-child(4) .sw-label:before{content:"Manages accounts: "}.acc-table td:nth-child(5){grid-column:2;grid-row:2;justify-self:end}.acc-table td:nth-child(6){grid-column:1 / -1}.acc-actions{justify-content:flex-start}.acc-table tr.new{background:var(--accent-soft)}.acc-table tr.new td{background:transparent}.g-mail{word-break:break-all}}.offline-banner{max-width:1480px;margin:0 auto 14px;padding:11px 24px;border-radius:12px;background:#fef3e2;color:#b45309;font-size:12.5px;font-weight:700}.offline-banner.bad{background:#fdecec;color:#b42318}.banner-btn{margin-left:10px;font-size:12.5px;font-weight:800;color:inherit;text-decoration:underline}.acct-role{font-size:12.5px;font-weight:800;color:var(--accent-deep);background:var(--accent-soft);border-radius:999px;display:inline-block;padding:4px 11px;margin:-6px 0 14px}[data-theme=dark] .offline-banner{background:#3a2a12;color:#fbbf24}[data-theme=dark] .offline-banner.bad{background:#3b1a1a;color:#fca5a5}.bell{position:relative;width:38px;height:38px;border-radius:50%;background:var(--card);box-shadow:var(--shadow);display:flex;align-items:center;justify-content:center;color:var(--ink);flex-shrink:0;transition:.15s}.bell:hover{color:var(--accent-deep)}.bell:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.bell.open{background:var(--accent-soft);color:var(--accent-deep);z-index:35}.bell svg{width:19px;height:19px;display:block}.bell-count{position:absolute;top:-4px;right:-4px;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:#e5484d;color:#fff;font-size:10.5px;font-weight:800;line-height:15px;text-align:center;border:2px solid var(--bg)}.bell-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:transparent}.bell-panel{position:absolute;top:calc(100% + 12px);right:0;width:396px;max-height:620px;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:0 18px 44px #2b304038;z-index:40;overflow:hidden;outline:none}.bp-head{display:flex;align-items:center;justify-content:space-between;padding:15px 18px 12px;border-bottom:1px solid var(--line)}.bp-head b{font-size:15px;font-weight:800;color:var(--ink)}.bp-right{display:flex;align-items:center;gap:10px}.bp-new{font-size:11.5px;font-weight:800;color:var(--accent-deep);background:var(--accent-soft);border-radius:999px;padding:3px 10px}.bp-x{display:none;width:30px;height:30px;border-radius:50%;background:var(--chip);color:var(--muted);font-size:13px;font-weight:800;align-items:center;justify-content:center}.bp-list{list-style:none;overflow:auto}.bp-item{display:grid;grid-template-columns:34px 1fr auto;gap:12px;align-items:flex-start;padding:13px 18px;border-bottom:1px solid var(--line)}.bp-item:last-child{border-bottom:0}.bp-item.new{background:var(--accent-soft)}.bp-ic{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:800}.bp-ic.add,.bp-ic.restore{background:#e3f8ea;color:#15803d}.bp-ic.time,.bp-ic.room,.bp-ic.edit{background:#e4efff;color:#1d4ed8}.bp-ic.cancel{background:#fdecec;color:#b42318}.bp-ic.remove{background:var(--chip);color:var(--muted)}.bp-ic.note{background:#fff4d6;color:#a16207}.bp-title{font-size:13px;font-weight:800;color:var(--ink);line-height:1.4}.bp-detail{margin-top:2px;font-size:12px;font-weight:600;color:var(--muted);line-height:1.5}.bp-detail b{color:var(--ink);font-weight:800}.bp-time{font-size:11px;font-weight:700;color:var(--muted);white-space:nowrap;display:flex;align-items:center;gap:6px;padding-top:2px}.bp-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);flex-shrink:0}.bp-foot{padding:11px 18px;font-size:11.5px;font-weight:600;color:var(--muted);background:var(--chip);line-height:1.5}.bp-empty{padding:34px 26px 30px;text-align:center}.bp-empty .big{font-size:30px;margin-bottom:8px}.bp-empty h4{font-size:14.5px;font-weight:800;color:var(--ink);margin-bottom:6px}.bp-empty p{font-size:12.5px;font-weight:600;color:var(--muted);line-height:1.6}[data-theme=dark] .bp-ic.add,[data-theme=dark] .bp-ic.restore{background:#14301f;color:#86efac}[data-theme=dark] .bp-ic.time,[data-theme=dark] .bp-ic.room,[data-theme=dark] .bp-ic.edit{background:#16243d;color:#93c5fd}[data-theme=dark] .bp-ic.cancel{background:#3b1a1a;color:#fca5a5}[data-theme=dark] .bp-ic.note{background:#3a3015;color:#fcd34d}@media(max-width:900px){.bell{width:36px;height:36px}.bell-scrim{background:#2b304061}.bell-panel{position:fixed;left:12px;right:12px;top:12px;width:auto;max-height:calc(100vh - 24px)}.bp-x{display:flex}}
