.lo{--navy-2:#1E293B;--gold:var(--accent-bright);--gold-soft:var(--accent-soft);--coral:var(--alert);--bg:var(--canvas);--card:var(--surface);--red:var(--danger);--red-soft:var(--danger-soft);--green:var(--ok);--green-soft:var(--ok-soft);--blue:var(--info);--blue-soft:var(--info-soft);color:var(--ink);font-size:14px;line-height:1.5}.lo,.lo *{box-sizing:border-box}.lo button{cursor:pointer}.lo button:where(:not(.ui-button)){font:inherit}.lo :where(.app-page,.lo-drawer,.ui-dialog) a:where(:not(.ui-btn,.ui-button,.btn)){color:var(--blue)}.lo h1{font-size:24px;line-height:1.5;margin:0 0 4px;letter-spacing:-.3px}.lo h2{font-size:15px;margin:0}.lo .sub{color:var(--muted);margin-bottom:16px}.lo .row{display:flex;gap:14px;flex-wrap:wrap}.lo .card .h,.lo .card.h{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}.lo .card .h h2{display:inline-flex;align-items:center;gap:8px}.lo .card .h a:not(.ui-button){display:inline-flex;align-items:center;gap:4px;color:var(--accent);font-size:13px;font-weight:600}.lo .lo-title{display:flex;align-items:center;gap:8px}.lo .lo-title-icon{flex:none;color:var(--accent-bright)}.lo .grid2{display:grid;grid-template-columns:1.4fr 1fr;grid-gap:14px;gap:14px}.lo .grid3{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:14px;gap:14px}.lo .grid4{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:14px;gap:14px}.lo .kpi{padding:16px 18px}.lo .kpi b{font-size:26px;display:block;letter-spacing:-.5px;margin:2px 0}.lo .kpi span:where(:not(.lo-stat-text,b span)){color:var(--muted);font-size:12px}.lo .list{list-style:none;margin:0;padding:0}.lo .list li{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--row-line)}.lo .list li:first-child{border-top:0}.lo .list .t{flex:1 1;min-width:0}.lo .list .t .m{word-break:keep-all}.lo .list .m{color:var(--muted);font-size:12px}.lo table{width:100%;border-collapse:collapse;background:#fff}.lo td,.lo th{text-align:left;padding:9px 10px;vertical-align:middle}.lo td,.lo th{border-bottom:1px solid var(--line)}.lo th{font-size:12px;color:var(--muted);font-weight:600;background:var(--table-head)}.lo tbody tr:last-child td{border-bottom:0}@media (min-width:701px){.lo :where(.ui-table-card,.so-table) :where(th,td):first-child{padding-left:14px}}.lo tr.sel td{background:var(--accent-soft)}.lo tr[data-link]{cursor:pointer}.lo tr[data-link]:hover td{background:#f8f9fb}.lo .bulk{display:none;align-items:center;flex-wrap:wrap;gap:8px;background:#1f2329;color:#f5f6f8;padding:10px 14px 10px 18px;border-radius:12px;margin-bottom:10px}.lo .bulk.on{display:flex}.lo .bulk:where(:not(.so .bulk))>b{font-size:15px}.lo .bulk :is(.btn,.ui-button),.lo .bulk :is(.btn,.ui-button):hover{background:transparent;border-color:rgba(255,255,255,.3);color:#f5f6f8;box-shadow:none}.lo .bulk :is(.btn,.ui-button):hover{background:rgba(255,255,255,.1)}.lo .bulk :is(.ui-button--fill,.btn.p),.lo .bulk :is(.ui-button--fill,.btn.p):hover{border-color:var(--accent-bright);background:var(--accent-bright);color:#fff;font-weight:700}.lo .bulk :is(.ui-button--fill,.btn.p):hover{border-color:var(--accent);background:var(--accent)}.lo .bulk :is(.btn,.ui-button):disabled{opacity:.5}.lo .bulk .bulk-sp{flex:1 1}.lo .bulk .bulk-clear{height:28px;padding:0 8px;border:0;border-radius:6px;background:none;color:#f5f6f8;font:inherit;font-size:14px;cursor:pointer}.lo .bulk .bulk-clear:hover{background:rgba(255,255,255,.1)}.lo .bulk .bulk-clear:focus-visible{outline:2px solid #9db5ff;outline-offset:1px}.lo .note{background:var(--accent-soft);border-left:3px solid var(--accent);padding:8px 12px;border-radius:0 8px 8px 0;font-size:13px;margin:10px 0}.lo .lo-tab-head>.note{flex:1 1 280px;min-width:0;margin:0}.lo .toolbar.lo-tab-head>:is(.ui-button,.btn):not(.ui-button--text){height:var(--control-h-sm);padding:0 12px;font-size:14px}.lo .step{display:flex;gap:0;margin:8px 0 16px}.lo .step span{padding:6px 14px;border:1px solid var(--line);background:#fff;font-size:12px;color:var(--muted)}.lo .step span:first-child{border-radius:7px 0 0 7px}.lo .step span:last-child{border-radius:0 7px 7px 0}.lo .step span.on{background:var(--navy);color:#fff;border-color:var(--navy)}.lo .step span.done{background:var(--accent-soft);color:var(--accent)}.lo .status{font-size:12px;padding:2px 6px;border-radius:4px;font-weight:600}.lo .status.draft{background:#eef0f4;color:var(--muted)}.lo .status.sched{background:var(--blue-soft);color:var(--blue)}.lo .status.pub{background:var(--green-soft);color:var(--green)}.lo .chk{display:flex;gap:8px;align-items:center}.lo .ac{background:#fff;border-radius:16px;padding:14px;box-shadow:0 4px 18px rgba(30,40,80,.08);border:1px solid #eef0f6}.lo .ac h4{margin:0 0 8px;font-size:13px;color:var(--muted);font-weight:600}.lo .big{border:0;border-radius:12px;padding:12px;font-weight:700;font-size:14px;color:#fff;background:var(--a1);width:100%}.lo .big.ghost{background:#F3F5FF;color:var(--a1)}.lo .big:disabled{background:#E5E7EF;color:#9AA0B4}.lo .chip{gap:6px;border-radius:12px;padding:8px 10px;font-size:12px;font-weight:600;background:var(--canvas);color:var(--ink);border:1px solid var(--line);cursor:pointer}.lo .chip,.lo .chip b{display:inline-flex;align-items:center}.lo .chip b{justify-content:center;box-sizing:border-box;line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-box-trim:trim-both;text-box-edge:cap alphabetic;min-width:18px;height:18px;background:var(--alert);color:#fff;border-radius:9px;padding:0 6px;font-size:11px}.lo .chip.ok b{background:var(--ok)}.lo .item{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid #f0f1f5}.lo .item:first-of-type{border-top:0}.lo .item .ico{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:17px;background:#F3F5FF;flex-shrink:0}.lo .item .tt{flex:1 1;font-size:13px}.lo .item .tt small{display:block;color:var(--muted);font-size:11px}.lo .ring{width:56px;height:56px;background:conic-gradient(var(--kid) 0 75%,#FFE8D6 75% 100%);font-size:12px;font-weight:800;color:#c2410c}.lo .ring,.lo .ring span{border-radius:50%;display:flex;align-items:center;justify-content:center}.lo .ring span{background:#fff;width:42px;height:42px}.lo .thumbs{display:flex;gap:6px;margin-top:8px;align-items:center}.lo .thumbs button{width:60px;height:44px;border-radius:6px;background:#e5e7ef;border:2px solid transparent;padding:0;color:inherit;font-size:10px;display:flex;align-items:flex-end;justify-content:center;cursor:pointer;position:relative;overflow:hidden}.lo .thumbs button.on{border-color:var(--accent)}.lo .thumbs button.done{background:#d9f2e3}.lo .msg{align-self:flex-start;max-width:70%;padding:8px 12px;border-radius:var(--radius-control);background:var(--bg);font-size:13px}.lo .msg.me{align-self:flex-end;background:var(--accent-bright);color:#fff}.lo .msg .small{color:inherit;opacity:.7}.lo .msg .img{display:flex;align-items:center;justify-content:center;gap:6px;width:180px;height:112px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-control);font-size:11px;color:var(--muted);margin-bottom:8px}.lo .markup{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,470px);grid-gap:14px;gap:14px}.lo .canvas{background:#fff;border:1px solid var(--line);border-radius:10px;position:relative;height:520px;overflow:hidden}.lo .canvas .paper{position:absolute;inset:20px;background:repeating-linear-gradient(#fff 0 27px,#eef 27px 28px);border:1px solid #ddd}.lo .canvas .tools{position:absolute;top:8px;left:8px;display:flex;gap:4px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:4px;z-index:2}.lo .canvas .tools button{border:0;background:transparent;padding:4px 8px;border-radius:5px}.lo .canvas .tools button.on{background:var(--accent-soft);color:var(--accent);font-weight:700}.lo .canvas canvas{position:absolute;inset:0;z-index:1}.lo .hand{position:absolute;left:60px;top:70px;font-family:Comic Sans MS,cursive;color:#233;font-size:16px;line-height:28px;z-index:0;pointer-events:none}.lo .ctile{display:flex;align-items:center;gap:12px;min-width:150px}.lo .ctile b{word-break:keep-all}.lo .thumb{width:54px;height:54px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:24px;flex-shrink:0}.lo .catchips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.lo .catchips .chip.on{background:var(--accent);color:#fff;border-color:var(--accent)}.lo .shop{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}.lo .shop .nav{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;padding:12px 18px;border-bottom:1px solid var(--line);font-size:13px}.lo .shop .nav>*{flex:none;white-space:nowrap}.lo .shop .nav b{margin-right:auto;font-size:15px}.lo .shop .hero{background:#F4F6F9;padding:20px 18px}.lo .shop .cards{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:12px;gap:12px;padding:14px 18px}.lo .pcard{border:1px solid var(--line);border-radius:12px;overflow:hidden;position:relative;background:#fff}.lo .pcard .img{aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;font-size:34px}.lo .pcard .mo{position:absolute;top:0;right:0;background:var(--coral);color:#fff;font-size:10px;padding:2px 8px;border-radius:0 0 0 8px;font-weight:700}.lo .pcard .bd{padding:10px}.lo .pcard .bd b{font-size:13px;display:block}.lo .pcard .bd .pr{display:flex;justify-content:space-between;margin-top:6px;font-size:12px}.lo .wfcard{border-radius:var(--radius-surface);padding:12px;margin-bottom:10px;border:1px solid var(--line);border-left:4px solid var(--accent)}.lo .lo-action-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px}.lo .lo-action-row>.lo-action-text{flex:1 1 280px;min-width:0}.lo .lo-action-row>.foot{flex:none;margin:0 0 0 auto}.lo .lo-action-text>p{margin:4px 0 0}.lo .small{font-size:12px;color:var(--muted)}.lo .excel{border:1px dashed var(--line);border-radius:10px;padding:26px;text-align:center;color:var(--muted);background:#fafbfc}.lo .err td{background:var(--red-soft)}.lo .kv{display:grid;grid-template-columns:120px 1fr;grid-gap:6px 10px;gap:6px 10px;font-size:13px}.lo .kv div:nth-child(odd){color:var(--muted)}.lo .console-kpi b{color:var(--gold)}.lo .chat{display:grid;grid-template-columns:var(--chat-rooms-w,360px) minmax(0,1fr);border:1px solid var(--line);border-radius:var(--radius-surface);overflow:hidden;background:var(--surface)}.lo .chat .rooms{display:flex;flex-direction:column;min-height:0;overflow-y:auto;border-right:1px solid var(--line)}.lo .chat .rooms-head{padding:12px;border-bottom:0;background:var(--surface)}.lo .lo-room-group{gap:6px;padding:8px 14px;background:var(--canvas);color:var(--muted);font-size:12px}.lo .chat .rooms button.room,.lo .lo-room-group{display:flex;align-items:center;width:100%;border:0;border-bottom:1px solid var(--row-line);text-align:left}.lo .chat .rooms button.room{gap:8px;padding:12px 14px;background:transparent;color:inherit}.lo .chat .rooms button.room:hover{background:var(--canvas)}.lo .chat .rooms button.room.on{background:var(--accent-soft)}.lo .chat .rooms button.room>div{flex:1 1;min-width:0;word-break:keep-all;overflow-wrap:anywhere}.lo .chat .rooms button.room .pill{margin-right:6px}.lo .chat .rooms .cnt{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-box-trim:trim-both;text-box-edge:cap alphabetic;min-width:18px;height:18px;margin-left:auto;padding:0 6px;border-radius:9px;background:var(--accent-bright);color:#fff;font-size:11px}.lo .chat .pane{display:flex;flex-direction:column;min-width:0;min-height:0}.lo .chat .pinned{display:flex;align-items:center;gap:8px;flex:none;padding:8px 14px;border-bottom:1px solid var(--line);background:var(--warn-soft);font-size:12px}.lo .chat .msgs{display:flex;flex:1 1;flex-direction:column;gap:10px;min-height:0;overflow-y:auto;padding:14px}.lo .lo-stack{display:grid;grid-gap:14px;gap:14px;align-content:start}.lo .lo-scroll{overflow-y:auto}.lo .lo-stack.lo-scroll{grid-auto-rows:max-content}.lo .lo-mt-14{margin-top:14px}.lo .lo-mt-10{margin-top:10px}.lo .lo-mt-8{margin-top:8px}.lo .lo-mb-8{margin-bottom:8px}.lo .lo-mt-4{margin-top:4px}.lo .lo-flush{margin-bottom:0}.lo .lo-head-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px}.lo .lo-head-row h1{margin:0}.lo .lo-head-row .sp{flex:1 1}.lo .lo-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.lo .lo-between{display:flex;align-items:center;justify-content:space-between;gap:8px}.lo .lo-btn-icon{display:inline-flex;align-items:center;gap:6px}.lo .lo-span-all{grid-column:1/-1}.lo .lo-col-1{grid-column-start:1}.lo .lo-tight{margin:0}.lo .lo-gap-8{gap:8px}.lo .lo-center{text-align:center}.lo .lo-small-w{width:32px}.lo .lo-icon-w{width:36px}.lo .lo-date-w{width:44px}.lo .lo-grab{white-space:nowrap;cursor:-webkit-grab;cursor:grab;color:var(--muted)}.lo .lo-grab svg{display:block}.lo .lo-danger-text{color:var(--danger)}.lo .lo-ok-text{color:var(--ok)}.lo .lo-coral{color:var(--coral)}.lo .lo-muted-text{color:var(--muted)}.lo .lo-textbtn.is-strong{font-weight:700}.lo .lo-linkbtn{border:0;background:none;padding:0;color:var(--info);text-decoration:underline;text-align:left}.lo .lo-kpi-link{width:100%;text-align:left;font:inherit;cursor:pointer}.lo .lo-kpi-link:hover{border-color:var(--line-strong)}.lo .kpi.is-danger b{color:var(--alert)}.lo .lo-kpi-link.is-on,.lo .lo-kpi-link.is-on:hover{border-color:var(--accent-bright)}.lo .lo-kpi-link:focus-visible{outline:2px solid var(--accent-bright);outline-offset:2px}.lo .lo-row-btn{display:flex;align-items:center;gap:10px;width:100%;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left}.lo .lo-count{min-width:18px;padding:0 6px;border-radius:9px;background:var(--coral);color:#fff;font-size:11px;line-height:18px}.lo .lo-count,.lo .lo-count-badge{display:inline-flex;align-items:center;justify-content:center}.lo .lo-count-badge{box-sizing:border-box;line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-box-trim:trim-both;text-box-edge:cap alphabetic;min-width:28px;height:28px;padding:0 8px;border:1px solid color-mix(in srgb,currentColor 25%,transparent);border-radius:14px;font-size:13px;font-weight:700}.lo .lo-count-badge--urgent{background:var(--danger-soft);color:var(--danger)}.lo .lo-count-badge--warn{background:var(--warn-soft);color:var(--warn)}.lo .lo-count-badge--info{background:var(--canvas);color:var(--muted)}.lo .lo-round-badge>span{display:block;text-box-trim:trim-both;text-box-edge:cap alphabetic}.lo .lo-round-badge{box-sizing:border-box;line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;padding:0 8px;border:1px solid color-mix(in srgb,var(--danger) 25%,transparent);border-radius:13px;background:var(--danger-soft);color:var(--danger);font-size:12px;font-weight:700}.lo .lo-check-done{display:inline-grid;place-items:center;flex:none;width:20px;height:20px;padding:0;border:2px solid #cbd5e1;border-radius:50%;background:transparent;color:transparent}.lo .lo-check-done:hover{border-color:var(--ok);color:var(--ok)}.lo .lo-showmore{margin-top:6px;text-align:center}.lo .lo-more-btn{display:inline-flex;align-items:center;gap:4px}.lo .lo-cell-input{width:120px;height:var(--control-h-sm);padding:0 8px;border:1px solid transparent;border-radius:var(--radius-control);background:transparent;font:inherit;font-size:13px}.lo .lo-cell-input:focus,.lo .lo-cell-input:hover{border-color:var(--line);background:var(--surface)}.lo .lo-title-input{height:var(--control-h);padding:0 10px;border:1px solid var(--line);border-radius:var(--radius-control);font:inherit;font-size:15px}.lo .lo-num-input{width:64px}.lo .lo-pick{text-align:left;font:inherit;cursor:pointer}.lo .lo-pick.is-on{border-color:var(--accent);background:var(--accent-soft)}.lo .lo-pick-center{display:flex;flex-direction:column;align-items:center;text-align:center;padding:18px}.lo .lo-pick-icon{font-size:28px;line-height:1;display:grid;place-items:center;width:40px;height:40px;margin-bottom:6px;color:var(--accent)}.lo .lo-pick-compact{padding:10px}.lo .lo-pick-compact b{font-size:13px}.lo .lo-pick-title{display:flex;align-items:center;gap:6px}.lo .lo-chips{display:flex;flex-wrap:wrap;gap:6px}.lo .lo-dropdown{margin-top:4px;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);max-height:260px;overflow:auto}.lo .lo-dropdown-row{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--line)}.lo .lo-dropdown-row b{flex:1 1}.lo .lo-dropdown-sub{display:flex;flex-wrap:wrap;gap:6px;padding:4px 10px 10px 34px;border-bottom:1px solid var(--line)}.lo .lo-dropdown-foot{padding:8px 10px;text-align:right}.lo .lo-dropdown-search{position:-webkit-sticky;position:sticky;top:0;z-index:1;padding:8px 10px;border-bottom:1px solid var(--line);background:var(--surface)}.lo .lo-dropdown-search input{width:100%}.lo .lo-dropdown-search-hit{cursor:pointer}.lo .lo-dropdown-search-hit>span:first-of-type{flex:1 1}.lo .lo-student-chk{padding:3px 8px;border:1px solid var(--line);border-radius:var(--radius-control);font-size:12px}.lo .lo-picker-btn{justify-content:space-between;width:100%;text-align:left}.lo .lo-flowcard{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--line);font-size:13px}.lo .lo-flowcard .ico{font-size:18px;line-height:1;display:grid;place-items:center;flex:none;width:36px;height:36px;border-radius:var(--radius-control);background:var(--accent-soft);color:var(--accent)}.lo .lo-flowcard .tt{flex:1 1}.lo .lo-flowcard small{display:block;color:var(--muted);font-size:11px}.lo .lo-phone{overflow:hidden;border:8px solid #1c1f26;border-radius:22px;background:var(--surface)}.lo .lo-phone-head{padding:12px;background:var(--accent);color:#fff}.lo .lo-phone-body{padding:12px}.lo .lo-phone-box{margin:8px 0;padding:8px;border-radius:var(--radius-control);background:var(--canvas);font-size:12px}.lo .lo-phone-box svg{vertical-align:-2px}.lo .lo-thumb{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:var(--radius-surface);color:var(--navy);font-size:20px;line-height:1}.lo .lo-class-btn{display:flex;align-items:center;gap:12px;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left}.lo .lo-teacher{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.lo .lo-bar-head{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--canvas)}.lo .lo-bar-head .sp{flex:1 1}.lo .lo-card-flush{padding:0;overflow:hidden}.lo .lo-attend-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:4px;gap:4px;margin-top:8px;text-align:center;font-size:12px}.lo .lo-drawer-head{display:flex;align-items:center;justify-content:space-between}.lo .lo-drawer-head h2{display:flex;align-items:center;gap:8px;padding-right:36px;font-size:17px}.lo .lo-drawer>.ui-dialog-x{top:14px;right:14px}.lo .lo-drawer:has(>.so)>.ui-dialog-x{top:33px;right:24px}@media (max-width:700px){.lo .lo-drawer:has(>.so)>.ui-dialog-x{top:24px}}.lo .lo-date-input{width:auto}.lo .lo-live-thumb{position:relative;display:block;width:100%;height:150px;padding:0;border:0;border-radius:var(--radius-surface) var(--radius-surface) 0 0;background:linear-gradient(135deg,#232b44,#3a4670);overflow:hidden;text-align:left}.lo .lo-live-badge{position:absolute;left:10px;top:10px;display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;background:rgba(0,0,0,.35);color:#fff;font-size:11px}.lo .lo-live-badge svg{fill:currentColor}.lo .lo-live-tiles{position:absolute;inset:0;display:grid;grid-template-columns:repeat(3,1fr);grid-gap:4px;gap:4px;padding:34px 10px 10px}.lo .lo-live-tile{display:flex;align-items:flex-end;gap:4px;padding:3px;border-radius:4px;background:rgba(255,255,255,.12);color:#fff;font-size:10px}.lo .lo-unstable{position:relative;display:inline-flex;flex:none;margin-right:4px;vertical-align:-2px;color:var(--danger)}.lo .lo-unstable-pill{position:relative;gap:4px;cursor:default}.lo [data-tip]:focus-visible:after,.lo [data-tip]:hover:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 6px);left:50%;z-index:30;transform:translateX(-50%);padding:5px 9px;border-radius:6px;background:var(--navy);color:#fff;font-size:12px;font-weight:600;line-height:1.4;white-space:nowrap;pointer-events:none;box-shadow:0 6px 16px rgba(15,23,42,.18)}.lo .lo-unstable-pill[data-tip]:focus-visible:after,.lo .lo-unstable-pill[data-tip]:hover:after{left:auto;right:0;transform:none}.lo .lo-live-tile .lo-unstable{color:#fdba74}.lo .lo-live-card{padding:0;overflow:visible}.lo .lo-live-meta{padding:12px}.lo .lo-live-line{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;position:relative}.lo .lo-live-title{flex:0 1 auto;min-width:0}.lo .lo-live-staff{display:flex;flex-wrap:wrap;gap:2px 10px;margin-top:4px}.lo .lo-teacher{font-weight:700}.lo .lo-teacher.is-in{color:var(--info)}.lo .lo-teacher.is-out{color:var(--danger)}.lo .lo-roster-btn{font:inherit;font-size:11px}.lo .lo-roster-head{display:flex;align-items:center;justify-content:space-between}.lo .lo-observe-stage{display:flex;align-items:center;justify-content:center;aspect-ratio:16/9;border-radius:var(--radius-surface);background:linear-gradient(135deg,#232b44,#3a4670);color:#fff}.lo .lo-board{display:grid;grid-gap:14px;gap:14px;min-width:0}.lo .lo-board-frame{display:block;width:100%;aspect-ratio:16/9;border:1px solid var(--line);border-radius:var(--radius-surface);background:#101827}.lo .lo-drawer{position:fixed;top:var(--shell-top-h);right:0;bottom:0;width:520px;max-width:100vw;background:var(--surface);border-left:1px solid var(--line);z-index:60;overflow:auto;padding:20px;box-shadow:-8px 0 24px rgba(15,23,42,.08);animation:lo-drawer-in .28s cubic-bezier(.22,1,.36,1) both}@keyframes lo-drawer-in{0%{transform:translateX(100%)}to{transform:none}}@media (min-width:901px){body:has(.app-shell.is-academy) .lo .lo-drawer{top:0}}.lo .lo-drawer.is-closing{pointer-events:none;animation:lo-drawer-out .24s cubic-bezier(.4,0,1,1) both}@keyframes lo-drawer-out{0%{transform:none}to{transform:translateX(100%)}}@media (prefers-reduced-motion:reduce){.lo .lo-drawer,.lo .lo-drawer.is-closing{animation:none}}.lo .list li.lo-notice-row{padding:0}.lo .lo-notice-link{display:flex;flex:1 1;align-items:center;gap:10px;min-width:0;margin:0 -8px;padding:9px 8px;border-radius:8px;color:inherit;transition:background var(--motion-fast) var(--motion-ease)}.lo .lo-notice-link:hover{background:var(--accent-soft)}.lo .lo-notice-link:focus-visible{outline:2px solid var(--accent-bright);outline-offset:-2px}.lo .lo-notice-row.is-read .lo-notice-link{opacity:.6}.lo .lo-modal-lead{margin:0 0 12px;word-break:keep-all;overflow-wrap:break-word}.lo .lo-modal h2{margin:0 0 12px;font-size:17px}.lo .lo-modal h2:first-of-type{padding-right:36px}.lo .lo-textbtn{border:0;background:none;padding:0;color:inherit;text-align:left}.lo .lo-roster{margin-left:auto}.lo .lo-roster-pop{display:none;position:absolute;left:50%;top:calc(100% - 3px);transform:translateX(-50%);width:max-content;min-width:100%;max-width:calc(100vw - 24px);background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px rgba(20,26,43,.18);padding:10px;z-index:9;font-size:12px;text-align:left}.lo .lo-roster.open .lo-roster-pop,.lo .lo-roster:hover .lo-roster-pop{display:block}.lo .lo-roster-pop td{padding:7px 6px;white-space:nowrap}.lo .lo-roster-pop td:first-child{padding-left:0}.lo .lo-roster-pop td:last-child{padding-right:0;text-align:right}.lo .lo-empty{padding:36px 16px;text-align:center;color:var(--muted)}.lo .lo-empty b{display:block;color:var(--ink);margin-bottom:4px}.lo-layer{position:fixed;inset:0;z-index:60;pointer-events:none;background:transparent}.lo-layer .lo-drawer{pointer-events:auto}.lo input[type=checkbox],.lo input[type=radio]{accent-color:var(--accent)}.lo.lo-mob .grid2,.lo.lo-mob .grid3,.lo.lo-mob .grid4{grid-template-columns:1fr}.lo.lo-mob table{display:block;overflow-x:auto;font-size:12px}.lo.lo-mob .lo-roster-pop{left:0;right:0;transform:none;width:auto;min-width:0;max-width:none}.lo.lo-mob .list li{flex-wrap:wrap}.lo.lo-mob .list .t{flex:1 1 150px}.lo.lo-mob .list .t+:is(.btn,.ui-button){margin-left:auto}@media (max-width:900px){.lo .grid2,.lo .grid3,.lo .grid4{grid-template-columns:1fr}.lo .lo-roster-pop{left:0;right:0;transform:none;width:auto;min-width:0;max-width:none}.lo .list li{flex-wrap:wrap}.lo .list .t{flex:1 1 150px}.lo .list .t+:is(.btn,.ui-button){margin-left:auto}.lo .app-page table,.lo .table-scroll{display:block;overflow-x:auto}.lo .chat{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}.lo .chat .rooms{max-height:260px;border-right:0;border-bottom:1px solid var(--line)}.lo .markup{grid-template-columns:1fr}.lo .shop .cards{grid-template-columns:1fr 1fr}}.lo .kv.lo-kv-gap{margin:8px 0 12px}.lo .excel.lo-btn-icon{display:flex;justify-content:center;padding:14px}.lo .lo-mb-12{margin-bottom:12px}.lo .lo-grow{flex:1 1;min-width:0}@supports not (text-box-trim:trim-both){.lo .chat .rooms .cnt,.lo .chip b,.lo .lo-count-badge,.lo .lo-round-badge{padding-top:1px}}@supports (text-box-trim:trim-both){.lo .chat .rooms .cnt,.lo .chip b,.lo .lo-count-badge{display:inline-block;padding-bottom:0;text-align:center}.lo .chat .rooms .cnt,.lo .chip b{padding-top:calc((18px - 1cap) / 2)}.lo .lo-count-badge{padding-top:calc((26px - 1cap) / 2)}}.lo .lo-more-btn{border-color:transparent;background:transparent;color:var(--muted);box-shadow:none}.lo .lo-more-btn:hover{border-color:transparent;background:var(--canvas);color:var(--ink)}.lo .grid4:not(.imp-sum)>.kpi:hover{border-color:var(--line-strong);box-shadow:0 6px 18px rgba(15,23,42,.07)}.lo .grid4:not(.imp-sum)>.kpi.is-on,.lo .grid4:not(.imp-sum)>.kpi.is-on:hover{border-color:var(--accent-bright)}.lo .kpi.lo-stat{display:flex;align-items:center;gap:14px;min-width:0;padding:14px 16px;color:var(--ink);transition:border-color var(--motion-fast),box-shadow var(--motion-fast)}.lo .lo-stat-icon{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:11px}.lo .lo-stat-icon.is-blue{background:var(--info-soft);color:var(--accent-bright)}.lo .lo-stat-icon.is-green{background:var(--ok-soft);color:var(--ok)}.lo .lo-stat-icon.is-red{background:var(--alert-soft);color:var(--alert)}.lo .lo-stat-icon.is-amber{background:var(--warn-soft);color:var(--warn)}.lo .lo-stat-icon.is-gray{background:var(--canvas);color:var(--muted)}.lo .lo-stat-text{display:grid;min-width:0}.lo .kpi .lo-stat-label{color:var(--muted);font-size:12px;font-weight:600;word-break:keep-all}.lo .kpi b.lo-stat-value{margin:0;font-size:22px;font-weight:800;line-height:1.3;letter-spacing:-.4px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.lo .kpi.is-danger b.lo-stat-value{color:var(--alert)}.lo .kpi .lo-stat-note{color:var(--muted);font-size:12px;word-break:keep-all}.lo .kpi .lo-stat-note svg{vertical-align:-2px}@media (max-width:560px){.lo .kpi.lo-stat{gap:10px;padding:12px}.lo .lo-stat-icon{width:34px;height:34px;border-radius:10px}.lo .kpi b.lo-stat-value{font-size:19px}}@media (prefers-reduced-motion:reduce){.lo .kpi.lo-stat{transition:none}}.lo .lo-chip-star{display:inline-flex;align-items:stretch;height:var(--control-h-sm);border:1px solid var(--line);border-radius:999px;background:var(--surface)}.lo .toolbar .lo-chip-star{height:var(--control-h)}.lo .lo-chip-star:hover{background:var(--canvas)}.lo .lo-chip-star:has(.ui-chip[aria-pressed=true]),.lo .lo-chip-star:has(.ui-chip[aria-pressed=true]):hover{border-color:var(--accent);background:var(--accent)}.lo .lo-chip-star .ui-chip,.lo .toolbar .lo-chip-star .ui-chip{height:auto;padding:0 2px 0 13px;border:0;border-radius:999px 0 0 999px;background:transparent}.lo .lo-star{display:inline-grid;place-items:center;width:28px;padding:0 9px 0 4px;border:0;border-radius:0 999px 999px 0;background:transparent;color:#c2c8d2;cursor:pointer}.lo .lo-star:hover{color:var(--muted)}.lo .lo-star[aria-pressed=true]{color:#f59e0b}.lo .lo-chip-star:has(.ui-chip[aria-pressed=true]) .lo-star{color:rgba(255,255,255,.55)}.lo .lo-chip-star:has(.ui-chip[aria-pressed=true]) .lo-star[aria-pressed=true]{color:#fde68a}.lo .lo-chip-star .ui-chip:focus-visible,.lo .lo-star:focus-visible{outline:2px solid var(--accent-bright);outline-offset:-2px}@media (max-width:900px){.lo .ui-table-card>table{display:table}.lo .grid4:has(>.kpi){grid-template-columns:1fr 1fr}.lo .grid4>.kpi:last-child:nth-child(odd){grid-column:1/-1}.lo .grid2>*,.lo .grid3>*,.lo .grid4>*{min-width:0}.lo th{white-space:nowrap}.lo td{word-break:keep-all}}@media (max-width:700px){.lo .kv{grid-template-columns:1fr;gap:2px}.lo .kv>:nth-child(2n){margin-bottom:8px}.lo .kv>:last-child{margin-bottom:0}.lo .shop .nav{flex-wrap:wrap;gap:5px 14px;padding:10px 14px}.lo .shop .nav>*{white-space:nowrap}.lo .shop .nav:after{content:"";order:1;flex:1 1 100%}.lo .shop .nav>span:not(.btn,.ui-button){order:2}}.lo .home-actions{display:inline-flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.lo .wfcard-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.lo .lo-person{gap:6px;white-space:nowrap}.lo .lo-class-name,.lo .lo-person{display:inline-flex;align-items:center}.lo .lo-class-name{flex-wrap:wrap;gap:4px 8px;min-width:0}.lo .lo-class-title{font-size:15px;word-break:keep-all}.lo .lo-seat-line{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.lo .lo-work{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.lo .lo-drag-hint{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-size:13px;white-space:nowrap}@media (max-width:700px){.lo .ui-toolbar-filters+.lo-drag-hint{margin-left:auto}}.lo .lo-seg{display:inline-flex;flex-wrap:wrap;gap:2px;padding:3px;border-radius:10px;background:var(--soft-button)}.lo .toolbar .lo-seg .ui-chip{gap:4px;height:30px;padding:0 12px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:14px;font-weight:500}.lo .toolbar .lo-seg .ui-chip:hover{background:var(--soft-button-hover);color:var(--ink)}.lo .toolbar .lo-seg .ui-chip[aria-pressed=true],.lo .toolbar .lo-seg .ui-chip[aria-pressed=true]:hover{background:var(--surface);color:var(--ink);font-weight:700;box-shadow:0 1px 2px rgba(20,26,43,.12)}.lo .toolbar .lo-seg .ui-chip b,.lo .toolbar .lo-seg .ui-chip[aria-pressed=true] b{min-width:0;height:auto;padding:0;background:transparent;color:inherit;font-size:14px;font-weight:inherit}.lo .lo-class-table .lo-c-menu{width:44px;text-align:right}@media (max-width:700px){.lo .ui-table-card table.lo-class-table{display:block;min-width:0}.lo .lo-class-table tbody,.lo .lo-class-table thead{display:block}.lo .lo-class-table thead tr{display:flex;align-items:center;gap:10px;padding:8px 14px;border-bottom:1px solid var(--line);background:var(--table-head)}.lo .lo-class-table thead th{display:none}.lo .lo-class-table thead th.lo-keep{display:block;width:auto;padding:0;border:0;background:none}.lo .lo-class-table tbody tr{display:grid;grid-template-columns:auto auto auto minmax(0,1fr) auto;grid-gap:6px 10px;gap:6px 10px;align-items:center;padding:12px 8px 12px 12px;border-bottom:1px solid var(--line)}.lo .lo-class-table tbody tr:last-child{border-bottom:0}.lo .lo-class-table tbody tr.sel{background:var(--accent-soft)}.lo .lo-class-table tbody td{display:block;padding:0;border:0}.lo .lo-class-table .lo-c-grip{grid-row:1;grid-column:1}.lo .lo-class-table .lo-c-box{grid-row:1;grid-column:2}.lo .lo-class-table .lo-c-name{grid-row:1;grid-column:3/5;min-width:0}.lo .lo-class-table .lo-c-menu{grid-row:1;grid-column:5;align-self:start;width:auto}.lo .lo-class-table .lo-c-teacher{grid-row:2;grid-column:3}.lo .lo-class-table .lo-c-period{grid-row:2;grid-column:4/6;font-size:13px}.lo .lo-class-table tbody td.lo-c-seats{display:flex;flex-wrap:wrap;align-items:center;gap:2px 8px;grid-row:3;grid-column:3/6}.lo .lo-class-table tbody td.lo-c-work{display:none}}