*{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f5f5f7;--window: #ffffff;--sidebar-bg: rgba(243, 242, 240, .86);--hairline: rgba(0, 0, 0, .1);--hairline-soft: rgba(0, 0, 0, .07);--text: #1d1d1f;--text-2: #3a3a3c;--muted: #86868b;--accent: #0a70e8;--accent-deep: #0058ce;--accent-tint: rgba(10, 112, 232, .1);--green: #1c8b3c;--green-tint: rgba(52, 199, 89, .16);--red: #d70015;--red-soft: #ff3b30;--red-tint: rgba(255, 59, 48, .12);--amber: #935600;--amber-tint: rgba(255, 149, 0, .16);--radius: 10px;--card-shadow: 0 0 0 .5px var(--hairline), 0 1px 2px rgba(0, 0, 0, .05);--btn-shadow: 0 0 0 .5px rgba(0, 0, 0, .12), 0 1px 1.5px rgba(0, 0, 0, .12);--focus-ring: 0 0 0 3.5px rgba(10, 112, 232, .28)}html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,Helvetica Neue,sans-serif;font-size:13px;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}::selection{background:#0a70e840}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:#00000038;border-radius:9px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:#00000059;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-track{background:transparent}.layout{display:flex;height:100vh}.sidebar{width:210px;background:var(--sidebar-bg);-webkit-backdrop-filter:saturate(180%) blur(24px);backdrop-filter:saturate(180%) blur(24px);border-right:1px solid var(--hairline-soft);padding:12px 10px 14px;flex-shrink:0;display:flex;flex-direction:column;gap:1px;overflow-y:auto}.sidebar .brand{font-size:14px;font-weight:700;letter-spacing:-.01em;padding:8px 10px 14px;color:var(--text)}.sidebar .brand span{color:var(--muted);font-weight:500}.sidebar a{display:flex;align-items:center;gap:8px;padding:5px 10px;border-radius:7px;color:var(--text);font-weight:400;font-size:13px;transition:background .13s ease}.icn{display:grid;place-items:center;width:18px;flex-shrink:0;color:#6e6e73}.icn svg{display:block}.sidebar a.active .icn,.sidebar .logout .icn{color:inherit}.sidebar a:hover{background:#0000000e;text-decoration:none}.sidebar a:active{background:#00000017}.sidebar a.active{background:var(--accent);color:#fff;font-weight:500}.sidebar .logout{margin-top:auto;color:var(--red-soft);cursor:pointer;padding:5px 10px;border-radius:7px;font-weight:400;display:flex;align-items:center;gap:8px;transition:background .13s ease}.sidebar .logout:hover{background:var(--red-tint)}.sidebar .who{padding:0 10px 8px;color:var(--muted);font-size:11.5px}.content{flex:1;min-width:0;padding:26px 30px 48px;overflow-y:auto}.content>div{animation:pageIn .22s ease}@keyframes pageIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}h1{font-size:24px;font-weight:700;letter-spacing:-.02em;margin-bottom:16px}h1 .crumb{color:var(--muted);font-weight:500}h2{font-size:14px;font-weight:650;letter-spacing:-.008em;margin:0 0 10px}h3{font-size:13px;font-weight:600;margin:12px 0 8px}.page-sub{color:var(--muted);margin:-10px 0 18px;font-size:12.5px;max-width:760px}.card{background:var(--window);border-radius:var(--radius);padding:16px 18px;margin-bottom:14px;box-shadow:var(--card-shadow)}.card>h2{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.card>h2 .hint{font-size:11.5px;font-weight:400;color:var(--muted)}.cards-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(172px,1fr));gap:12px;margin-bottom:14px}.stat{background:var(--window);border-radius:var(--radius);padding:13px 15px;box-shadow:var(--card-shadow);transition:transform .18s ease,box-shadow .18s ease}.stat:hover{transform:translateY(-1px);box-shadow:0 0 0 .5px var(--hairline),0 4px 14px #00000017}.stat .label{color:var(--muted);font-size:11px;font-weight:500;margin-bottom:4px}.stat .value{font-size:19px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.stat .sub{font-size:11.5px;color:var(--muted);margin-top:3px;font-variant-numeric:tabular-nums}.stat.good .value{color:var(--green)}.stat.bad .value{color:var(--red)}.delta-up{color:var(--green);font-weight:600}.delta-down{color:var(--red);font-weight:600}.table-wrap{overflow-x:auto;margin:0 -18px;padding:0 18px}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:7px 10px;vertical-align:top}th{color:var(--muted);font-weight:500;font-size:11px;white-space:nowrap;border-bottom:1px solid var(--hairline-soft)}td{font-variant-numeric:tabular-nums;border-bottom:none}tbody tr:nth-child(2n) td{background:#00000007}tbody tr:hover td{background:var(--accent-tint)}tbody tr td:first-child{border-radius:6px 0 0 6px}tbody tr td:last-child{border-radius:0 6px 6px 0}th.num,td.num{text-align:right}td.pos{color:var(--green)}td.neg{color:var(--red)}tr.total-row td{border-top:1px solid var(--hairline);font-weight:700;background:none!important}input,textarea,select{background:var(--window);color:var(--text);border:none;box-shadow:0 0 0 .5px #00000038,inset 0 .5px 1px #0000000d;border-radius:6px;padding:5px 9px;font-size:13px;font-family:inherit;width:100%;transition:box-shadow .15s ease}input:focus,textarea:focus,select:focus{outline:none;box-shadow:0 0 0 .5px #00000038,var(--focus-ring)}input[type=checkbox]{width:auto;accent-color:var(--accent);box-shadow:none}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:26px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='14' viewBox='0 0 10 14'><path d='M2 5.5 5 2.5l3 3M2 8.5l3 3 3-3' fill='none' stroke='%23636366' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>");background-repeat:no-repeat;background-position:right 8px center}textarea{min-height:84px;resize:vertical}label{display:block;margin:11px 0 4px;color:var(--text-2);font-size:12px;font-weight:500}.row{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.row>div{flex:1;min-width:120px}.row .narrow{flex:0 0 140px}button{background:linear-gradient(180deg,#2f8bf2,var(--accent) 60%,var(--accent-deep));color:#fff;border:none;border-radius:6px;padding:5px 14px;font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;margin-top:12px;box-shadow:var(--btn-shadow),inset 0 .5px #ffffff59;transition:filter .12s ease,transform .06s ease,box-shadow .12s ease}button:hover{filter:brightness(1.06)}button:active{transform:scale(.97);filter:brightness(.92)}button:focus-visible{outline:none;box-shadow:var(--btn-shadow),var(--focus-ring)}button.secondary{background:linear-gradient(180deg,#fff,#f7f7f7);color:var(--text);box-shadow:var(--btn-shadow)}button.secondary:hover{filter:none;background:linear-gradient(180deg,#fafafa,#f0f0f0)}button.secondary:active{background:#e8e8e8}button.danger{background:linear-gradient(180deg,#fff,#f7f7f7);color:var(--red-soft);box-shadow:var(--btn-shadow)}button.danger:hover{filter:none;background:var(--red-tint)}button.small{padding:2.5px 10px;font-size:12px;margin-top:0;border-radius:5.5px}button:disabled{opacity:.45;cursor:default;transform:none}.badge{display:inline-block;padding:1.5px 8px;border-radius:99px;font-size:11px;font-weight:600;line-height:1.5}.badge.paid{background:var(--green-tint);color:var(--green)}.badge.pending{background:var(--amber-tint);color:var(--amber)}.badge.cancelled,.badge.rejected{background:var(--red-tint);color:var(--red)}.badge.off{background:#00000012;color:var(--muted)}.error{color:var(--red);margin:8px 0}.ok{color:var(--green);margin:8px 0;animation:pageIn .2s ease}.muted{color:var(--muted)}.chart{display:flex;align-items:flex-end;gap:3px;height:150px;padding-top:8px}.chart .col{flex:1;display:flex;flex-direction:column;justify-content:flex-end;height:100%;min-width:5px}.chart .col .fill{background:linear-gradient(180deg,#4da3ff,var(--accent));border-radius:3px 3px 1.5px 1.5px;min-height:3px;transform-origin:bottom;animation:barIn .45s cubic-bezier(.2,.9,.3,1);transition:filter .12s ease}@keyframes barIn{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.chart .col:hover .fill{filter:brightness(.85)}.chart-x{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;margin-top:6px}.bar-row{display:flex;align-items:center;gap:10px;margin:5px 0}.bar-row .bar{background:var(--accent);height:11px;border-radius:4px;min-width:2px}.bar-row .lbl{width:88px;color:var(--muted);font-size:11.5px;flex-shrink:0;font-variant-numeric:tabular-nums}.bar-row .val{font-size:11.5px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.login-wrap{display:flex;align-items:center;justify-content:center;min-height:100vh}.login-box{width:360px;padding:28px;border-radius:12px;box-shadow:0 0 0 .5px var(--hairline),0 8px 28px #0000001a;animation:pageIn .25s ease}.login-box h1{margin-bottom:4px}.login-box .page-sub{margin:0 0 8px}.login-box button{width:100%;padding:8px;margin-top:18px}video.preview{width:100%;max-width:420px;border-radius:8px;margin-top:8px;background:#000}.tree-block{border-radius:var(--radius);padding:14px 16px;margin:12px 0;background:#f5f5f7;box-shadow:inset 0 0 0 .5px var(--hairline-soft)}.tree-lesson{border-radius:8px;padding:11px 13px;margin:9px 0;background:var(--window);box-shadow:var(--card-shadow)}.q-item{padding:8px 12px;margin:8px 0;background:var(--window);box-shadow:var(--card-shadow);border-left:3px solid var(--accent);border-radius:7px}.inline-flex{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.spacer{flex:1}.inline-check{display:inline-flex;align-items:center;gap:6px;margin:0;font-size:13px;color:var(--text);font-weight:400}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.seg{display:inline-flex;background:#0000000e;border-radius:8px;padding:2px;gap:2px}button.seg-btn{background:none;color:var(--text-2);box-shadow:none;margin:0;padding:3.5px 12px;border-radius:6.5px;font-size:12.5px;font-weight:500}button.seg-btn:hover{filter:none;background:#0000000d}button.seg-btn:active{transform:none}button.seg-btn.on{background:var(--window);color:var(--text);box-shadow:0 0 0 .5px var(--hairline),0 1px 2.5px #0000001f}tr.clickable{cursor:pointer}tr.clickable td{transition:background .12s ease}.drill-caret{color:var(--accent);margin-left:6px;font-size:10px}tr.drill-row td,tr.drill-row:hover td{background:none!important;padding:0 0 10px}.drill{margin:4px 2px 6px;padding:12px 14px;border-radius:9px;background:var(--bg);box-shadow:inset 0 0 0 .5px var(--hairline-soft);animation:pageIn .18s ease}.drill h3{margin:0 0 8px}.drill-inner{margin-top:10px;padding:10px 12px;border-radius:8px;background:var(--window);box-shadow:var(--card-shadow);animation:pageIn .18s ease}.drill-inner h3{margin:0 0 6px}.meter{height:7px;min-width:90px;border-radius:99px;background:#00000012;overflow:hidden;margin-top:5px}.meter-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,#4da3ff,var(--accent));transition:width .35s cubic-bezier(.2,.9,.3,1)}.meter-fill.over{background:linear-gradient(90deg,#ff6b5e,var(--red-soft))}.notice{background:var(--amber-tint);color:var(--amber);border-radius:8px;padding:8px 12px;margin:8px 0 12px;font-size:12.5px}.clock-card{display:flex;align-items:center;gap:14px}.clock-card .clock-info{flex:1}.clock-card .clock-status{font-size:15px;font-weight:650;letter-spacing:-.01em}.clock-dot{width:13px;height:13px;border-radius:50%;background:#0000002e;flex-shrink:0}.clock-dot.on{background:var(--green);box-shadow:0 0 0 4px var(--green-tint);animation:pulse 2s ease infinite}@keyframes pulse{0%,to{box-shadow:0 0 0 4px var(--green-tint)}50%{box-shadow:0 0 0 7px #34c75914}}
