:root{--teal-50: #f0fdfa;--teal-100: #ccfbf1;--teal-200: #99f6e4;--teal-600: #0d9488;--teal-700: #0f766e;--teal-800: #115e59;--teal-900: #134e4a;--ink: #0b1220;--ink-2: #1e293b;--muted: #64748b;--line: #e8edf3;--line-2: #f1f5f9;--surface: #ffffff;--canvas: #f6f8fb;--danger: #dc2626;--warn: #d97706;--ok: #047857;--sidebar-w: 240px;--header-h: 56px;--r: 10px;--r-lg: 14px;--shadow-xs: 0 1px 2px rgba(15, 23, 42, .04);--shadow-sm: 0 1px 2px rgba(15, 23, 42, .04), 0 4px 12px rgba(15, 23, 42, .04);--font: "Noto Sans SC", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-display: "Plus Jakarta Sans", "Noto Sans SC", sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font);color:var(--ink-2);background:var(--canvas);line-height:1.55;font-size:14px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--teal-700);text-decoration:none;font-weight:500}a:hover{color:var(--teal-600)}.split-auth{min-height:100vh;display:grid;grid-template-columns:minmax(320px,1.05fr) minmax(360px,1fr);background:var(--surface)}.split-panel{position:relative;color:#e8f7f5;background:linear-gradient(155deg,#083532,#0f766e 52%,#0b4f4a);overflow:hidden}.split-panel:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(ellipse 90% 70% at 30% 40%,#000 20%,transparent 75%);mask-image:radial-gradient(ellipse 90% 70% at 30% 40%,#000 20%,transparent 75%);pointer-events:none;opacity:.7}.split-orb{position:absolute;border-radius:50%;filter:blur(48px);pointer-events:none;z-index:0}.split-orb-a{width:280px;height:280px;top:-80px;right:-60px;background:#2dd4bf47;animation:orbFloat 10s ease-in-out infinite}.split-orb-b{width:220px;height:220px;bottom:8%;left:-70px;background:#0d948859;animation:orbFloat 12s ease-in-out infinite reverse}@keyframes orbFloat{0%,to{transform:translate(0)}50%{transform:translate(12px,-18px)}}@keyframes riseIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.split-panel-inner{--split-pad-x: clamp(2.5rem, 5.5vw, 4.5rem);position:relative;z-index:1;height:100%;min-height:100vh;display:flex;flex-direction:column;padding:1.75rem var(--split-pad-x) 1.75rem}.split-top{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:40px;animation:riseIn .55s ease-out both}.split-mark{display:inline-flex;align-items:center;gap:.65rem;font-family:Noto Sans SC,PingFang SC,sans-serif;font-size:.9rem;font-weight:600;letter-spacing:.01em;color:#ffffffeb}.split-mark-badge{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:#ffffff1f;border:1px solid rgba(255,255,255,.2);font-size:.95rem;font-weight:700;font-family:Noto Sans SC,PingFang SC,sans-serif;letter-spacing:0}.split-top-chip{font-size:.7rem;font-weight:600;letter-spacing:.04em;color:#ccfbf1d9;padding:.28rem .65rem;border-radius:999px;border:1px solid rgba(255,255,255,.16);background:#ffffff0f}.split-body{flex:1;display:flex;flex-direction:column;justify-content:center;max-width:28rem;padding:2.75rem 0 1.75rem}.split-eyebrow{margin:0 0 1rem;display:inline-flex;align-items:center;gap:.5rem;font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#99f6e4e6;animation:riseIn .6s .05s ease-out both}.split-eyebrow-dot{width:7px;height:7px;border-radius:50%;background:#5eead4;box-shadow:0 0 0 4px #5eead42e}.split-body h1{margin:0;font-family:var(--font-display);font-size:clamp(2rem,3.2vw,2.65rem);font-weight:700;line-height:1.18;letter-spacing:-.03em;color:#fff;animation:riseIn .65s .1s ease-out both}.split-body h1 em{font-style:normal;background:linear-gradient(105deg,#ccfbf1,#5eead4 55%,#99f6e4);-webkit-background-clip:text;background-clip:text;color:transparent}.split-lead{margin:1.25rem 0 0;font-size:.98rem;line-height:1.75;color:#e2f5f2cc;max-width:34ch;animation:riseIn .65s .16s ease-out both}.split-metrics{margin-top:2rem;display:flex;align-items:stretch;gap:0;padding:1rem 0;border-top:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.12);animation:riseIn .65s .22s ease-out both}.split-metric{flex:1;display:grid;gap:.2rem;padding:.15rem .85rem .15rem 0}.split-metric:first-child{padding-left:0}.split-metric strong{font-family:var(--font-display);font-size:1.05rem;font-weight:700;color:#fff;letter-spacing:-.02em}.split-metric span{font-size:.75rem;color:#ccfbf1a6;line-height:1.35}.split-metric-sep{width:1px;align-self:stretch;background:#ffffff24;margin:.15rem .35rem}.split-quote{margin-top:1.75rem;padding:1rem 0 0 1rem;border-left:2px solid rgba(94,234,212,.55);animation:riseIn .65s .28s ease-out both}.split-quote p{margin:0;font-size:.95rem;line-height:1.65;color:#ffffffeb;font-weight:500}.split-quote span{display:block;margin-top:.45rem;font-size:.72rem;color:#ccfbf18c;letter-spacing:.02em}.split-foot{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:1rem;font-size:.75rem;color:#ffffff6b;animation:riseIn .55s .32s ease-out both}.split-foot-meta{letter-spacing:.06em;text-transform:uppercase;font-size:.65rem}.split-form{display:flex;align-items:center;justify-content:center;padding:2.5rem 1.5rem;background:var(--canvas)}.split-form-card{width:min(400px,100%);background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-sm);padding:2rem 2rem 1.75rem}.split-form-card.wide{width:min(520px,100%)}.split-form-head{margin-bottom:1.5rem}.split-form-org{margin:0 0 .55rem;font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--teal-700)}.split-form-head h2{margin:0;font-family:var(--font-display);font-size:1.45rem;font-weight:700;letter-spacing:-.02em;color:var(--ink)}.split-form-head p{margin:.4rem 0 0;font-size:.875rem;color:var(--muted)}.split-form-foot{margin-top:1.35rem;padding-top:1.15rem;border-top:1px solid var(--line-2);display:flex;justify-content:center;gap:.4rem;font-size:.875rem;color:var(--muted)}.field-with-action{position:relative}.field-with-action input{padding-right:3.6rem}.field-action{position:absolute;right:.45rem;top:50%;transform:translateY(-50%);border:none;background:#eef2f6;color:#475569;font:inherit;font-size:.72rem;font-weight:650;cursor:pointer;padding:.28rem .55rem;border-radius:7px}.field-action:hover{color:var(--teal-700)}@media(max-width:900px){.split-auth{grid-template-columns:1fr}.split-panel{min-height:auto}.split-panel-inner{--split-pad-x: 1.5rem;min-height:auto;padding:1.35rem var(--split-pad-x) 1.25rem}.split-body{flex:none;justify-content:flex-start;max-width:none;padding:1.35rem 0 .75rem}.split-body h1{font-size:1.55rem}.split-metrics{margin-top:1.35rem}.split-quote,.split-top-chip,.split-foot-meta{display:none}.split-orb{opacity:.55}.split-foot{padding-top:.75rem}.split-form{padding:1.25rem 1rem 2rem;align-items:flex-start}}.app-shell{min-height:100vh;background:var(--canvas)}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-w);z-index:40;display:flex;flex-direction:column;background:var(--surface);border-right:1px solid var(--line)}.sidebar-header{height:var(--header-h);padding:0 1rem 0 1.1rem;display:flex;align-items:center;gap:.65rem;border-bottom:1px solid var(--line)}.sidebar-logo{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:var(--teal-800);color:#fff;font-family:Noto Sans SC,PingFang SC,sans-serif;font-weight:700;font-size:.95rem;letter-spacing:0;flex-shrink:0}.sidebar-brand-title{display:block;font-family:var(--font-display);font-size:.92rem;font-weight:700;color:var(--ink);letter-spacing:-.01em;line-height:1.15}.sidebar-brand-sub{font-size:.68rem;color:var(--muted);margin-top:1px}.sidebar-nav{flex:1;overflow-y:auto;padding:.85rem .65rem}.sidebar-section{margin-bottom:1.1rem}.sidebar-section-title{padding:0 .65rem;margin-bottom:.35rem;font-size:.68rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#94a3b8}.sidebar-link{display:flex;align-items:center;gap:.65rem;padding:.55rem .7rem;margin-bottom:2px;border-radius:8px;font-size:.875rem;font-weight:500;color:#475569;transition:background .15s ease,color .15s ease}.sidebar-link svg{width:18px;height:18px;flex-shrink:0;opacity:.75}.sidebar-link:hover{background:var(--line-2);color:var(--ink-2)}.sidebar-link.active{background:var(--teal-50);color:var(--teal-800)}.sidebar-link.active svg{opacity:1;color:var(--teal-700)}.account-chip{display:flex;align-items:center;gap:.55rem;flex-shrink:0;max-width:min(280px,46vw);padding:.28rem .35rem .28rem .28rem;border:1px solid var(--line);border-radius:999px;background:linear-gradient(180deg,#fff,#f8fafc);box-shadow:0 1px 2px #0f172a0a}.account-avatar{width:34px;height:34px;border-radius:999px;display:grid;place-items:center;flex-shrink:0;font-weight:750;font-size:.85rem;color:#fff;background:linear-gradient(145deg,#2dd4bf,#0f766e);box-shadow:0 4px 10px #0d948847}.account-meta{min-width:0;flex:1;padding-right:.15rem}.account-meta strong{display:block;font-size:.82rem;font-weight:650;color:var(--ink);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-meta span{display:block;font-size:.68rem;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-logout{width:32px;height:32px;flex-shrink:0;border:0;border-radius:999px;background:transparent;color:#94a3b8;display:grid;place-items:center;cursor:pointer;transition:background .15s ease,color .15s ease}.account-logout svg{width:16px;height:16px}.account-logout:hover{background:#fef2f2;color:#dc2626}.account-logout:focus-visible{outline:none;box-shadow:0 0 0 3px #dc26262e}.app-main{margin-left:var(--sidebar-w);min-height:100vh;display:flex;flex-direction:column}.top-header{height:var(--header-h);padding:0 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--line);background:#ffffffdb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:20}.top-header h1{margin:0;font-family:var(--font-display);font-size:.98rem;font-weight:650;color:var(--ink);letter-spacing:-.01em}.top-header .muted{margin:.1rem 0 0;font-size:.75rem}.page{flex:1;width:100%;padding:1.5rem 2rem 2.25rem}.page>.page-stack,.page>.card{width:min(1080px,100%);margin-left:auto;margin-right:auto}.page>.page-stack{display:grid;gap:.9rem}.quick-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.quick-card{display:grid;gap:.3rem;padding:1.05rem 1.15rem;border-radius:12px;border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-xs);color:inherit;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.quick-card:hover{border-color:#99f6e4;box-shadow:0 8px 24px #0f172a0f;transform:translateY(-1px);color:inherit}.quick-card.primary{background:linear-gradient(145deg,#0f766e,#0d9488);border-color:transparent;color:#fff}.quick-card.primary:hover{border-color:transparent;color:#fff;box-shadow:0 10px 28px #0d948847}.quick-card strong{font-size:.95rem;font-weight:700}.quick-card span{font-size:.78rem;opacity:.78}.quick-card.primary span{color:#ccfbf1e6}@media(max-width:800px){.quick-actions{grid-template-columns:1fr}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-xs);padding:1.15rem 1.25rem}.card h2{margin:0 0 .85rem;font-size:.95rem;font-weight:650;color:var(--ink);letter-spacing:-.01em}.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.card-head h2{margin:0}.muted{color:var(--muted);font-size:.82rem}.form{display:grid;gap:1rem}label{display:grid;gap:.4rem;font-size:.78rem;font-weight:600;color:#334155}.field-hint{font-size:.72rem;font-weight:500;color:#94a3b8}input:not([type=file]):not([type=checkbox]):not([type=radio]),select,textarea{font:inherit;width:100%;min-height:42px;padding:.62rem .9rem;border:1px solid #d7e0ea;border-radius:10px;background:#f8fafc;color:var(--ink-2);transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;box-shadow:inset 0 1px 2px #0f172a05}input:not([type=file]):not([type=checkbox]):not([type=radio]):hover,select:hover,textarea:hover{border-color:#b8c7d6;background:#fff}input:not([type=file]):not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{outline:none;border-color:var(--teal-600);background:#fff;box-shadow:0 0 0 3px #0d948824}input::placeholder,textarea::placeholder{color:#94a3b8}select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:2.4rem;cursor:pointer;background-color:#f8fafc;background-image:linear-gradient(45deg,transparent 50%,#64748b 50%),linear-gradient(135deg,#64748b 50%,transparent 50%);background-position:calc(100% - 16px) calc(50% - 2px),calc(100% - 11px) calc(50% - 2px);background-size:5px 5px,5px 5px;background-repeat:no-repeat}select:hover,select:focus{background-color:#fff;background-image:linear-gradient(45deg,transparent 50%,var(--teal-700) 50%),linear-gradient(135deg,var(--teal-700) 50%,transparent 50%);background-position:calc(100% - 16px) calc(50% - 2px),calc(100% - 11px) calc(50% - 2px);background-size:5px 5px,5px 5px;background-repeat:no-repeat}select:disabled{opacity:.6;cursor:not-allowed}textarea{min-height:104px;resize:vertical;line-height:1.55;padding-top:.75rem}table select{min-height:34px;padding:.35rem 2rem .35rem .6rem;font-size:.82rem;border-radius:8px;background-position:calc(100% - 12px) calc(50% - 2px),calc(100% - 7px) calc(50% - 2px)}.toolbar label{min-width:140px}.toolbar input:not([type=file]),.toolbar select{min-height:38px}.toolbar .ui-select,.toolbar .month-picker{min-width:148px}.toolbar .ui-select.size-sm .ui-select-trigger,.toolbar .month-picker.size-sm .month-picker-trigger,.toolbar .ui-select-trigger,.toolbar .month-picker-trigger{min-height:38px;height:38px;padding:0 .8rem;font-size:.875rem;line-height:1.2;border-radius:10px;box-sizing:border-box}.toolbar .ui-select-value,.toolbar .month-picker-value{font-size:inherit;font-weight:600;letter-spacing:0}.toolbar .month-picker-icon{width:14px;height:14px}.ui-select{position:relative;width:100%}.ui-select.disabled{opacity:.6;pointer-events:none}.ui-select-trigger{width:100%;min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:.55rem;padding:.55rem .9rem;border:1px solid #d7e0ea;border-radius:10px;background:#f8fafc;box-shadow:inset 0 1px 2px #0f172a05;cursor:pointer;text-align:left;font:inherit;color:var(--ink-2);transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.ui-select.size-sm .ui-select-trigger{min-height:38px;height:38px;padding:0 .75rem;font-size:.875rem;line-height:1.2;border-radius:8px;box-sizing:border-box}table .ui-select.size-sm .ui-select-trigger{min-height:34px;height:34px;padding:0 .65rem;font-size:.82rem}.ui-select-trigger:hover,.ui-select.open .ui-select-trigger{border-color:var(--teal-600);background:#fff;box-shadow:0 0 0 3px #0d94881f}.ui-select-value{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:550}.ui-select-value.placeholder{color:#94a3b8;font-weight:500}.ui-select-caret{width:7px;height:7px;border-right:2px solid #94a3b8;border-bottom:2px solid #94a3b8;transform:rotate(45deg);margin-top:-3px;flex-shrink:0;transition:transform .15s ease,border-color .15s ease}.ui-select.open .ui-select-caret,.month-picker.open .ui-select-caret{border-color:var(--teal-700);transform:rotate(225deg);margin-top:2px}.ui-select-panel{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 40px #0f172a24;overflow-x:hidden;overflow-y:auto;padding:.35rem;animation:riseIn .16s ease-out}.ui-select-option{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.55rem .7rem;border:0;border-radius:8px;background:transparent;font:inherit;font-size:.88rem;color:var(--ink-2);cursor:pointer;text-align:left}.ui-select-option:hover{background:#0d948814;color:var(--teal-800)}.ui-select-option.active{background:#0d94881f;color:var(--teal-800);font-weight:650}.ui-select-option.is-disabled{opacity:.45;cursor:not-allowed}.ui-select-check{width:8px;height:8px;border-radius:999px;background:var(--teal-600);flex-shrink:0}.ui-select-empty{padding:.85rem;text-align:center;color:#94a3b8;font-size:.85rem}table .ui-select{min-width:108px}.month-picker{position:relative;width:100%}.month-picker.disabled{opacity:.6;pointer-events:none}.month-picker-trigger{width:100%;min-height:42px;display:flex;align-items:center;gap:.55rem;padding:.55rem .9rem;border:1px solid #d7e0ea;border-radius:10px;background:#f8fafc;box-shadow:inset 0 1px 2px #0f172a05;cursor:pointer;text-align:left;font:inherit;color:var(--ink-2);transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.month-picker.size-sm .month-picker-trigger{min-height:38px;height:38px;padding:0 .75rem;font-size:.875rem;line-height:1.2;border-radius:8px;box-sizing:border-box}.month-picker-trigger:hover,.month-picker.open .month-picker-trigger{border-color:var(--teal-600);background:#fff;box-shadow:0 0 0 3px #0d94881f}.month-picker-icon{width:16px;height:16px;flex-shrink:0;border:1.5px solid #64748b;border-radius:3px;position:relative;background:linear-gradient(#64748b,#64748b) 3px 0 / 1.5px 4px no-repeat,linear-gradient(#64748b,#64748b) 10px 0 / 1.5px 4px no-repeat,linear-gradient(#e2e8f0,#e2e8f0) 0 5px / 100% 1.5px no-repeat}.month-picker.open .month-picker-icon{border-color:var(--teal-700)}.month-picker-value{flex:1;min-width:0;font-weight:600;letter-spacing:.01em}.month-picker-value.placeholder{color:#94a3b8;font-weight:500}.month-picker-panel{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 44px #0f172a24;padding:.75rem;animation:riseIn .16s ease-out}.month-picker-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.65rem;padding:0 .15rem}.month-picker-head strong{font-family:var(--font-display);font-size:1.05rem;font-weight:700;letter-spacing:-.02em;color:var(--ink)}.month-nav{width:32px;height:32px;border:1px solid var(--line);border-radius:8px;background:#f8fafc;color:var(--ink-2);font-size:1.15rem;line-height:1;cursor:pointer;display:grid;place-items:center;transition:background .12s ease,border-color .12s ease}.month-nav:hover{background:#fff;border-color:var(--teal-600);color:var(--teal-800)}.month-picker-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem}.month-cell{min-height:40px;border:0;border-radius:10px;background:#f8fafc;font:inherit;font-size:.88rem;font-weight:550;color:var(--ink-2);cursor:pointer;transition:background .12s ease,color .12s ease,transform .12s ease}.month-cell:hover{background:#0d94881a;color:var(--teal-800)}.month-cell.now{box-shadow:inset 0 0 0 1.5px #0d948859}.month-cell.active{background:linear-gradient(145deg,var(--teal-600),#0f766e);color:#fff;font-weight:700;box-shadow:0 6px 14px #0d948847}.month-picker-foot{display:flex;justify-content:flex-end;margin-top:.55rem;padding-top:.45rem;border-top:1px solid var(--line-2)}.month-today{border:0;background:transparent;color:var(--teal-700);font:inherit;font-size:.82rem;font-weight:650;cursor:pointer;padding:.25rem .45rem;border-radius:6px}.month-today:hover{background:#0d948814}.file-drop{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;min-height:108px;padding:1.15rem 1rem;border:1.5px dashed #c5d0dd;border-radius:12px;background:linear-gradient(180deg,#fbfcfd,#f4f7fa);color:#64748b;text-align:center;cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease}.file-drop:hover,.file-drop:focus-within{border-color:var(--teal-600);background:var(--teal-50);color:var(--teal-800)}.file-drop.has-file{border-style:solid;border-color:#99f6e4;background:#f0fdfa;color:var(--teal-800)}.file-drop input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer;width:100%;height:100%}.file-drop-icon{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:#fff;border:1px solid #e2e8f0;color:var(--teal-700);margin-bottom:.15rem}.file-drop-icon svg{width:18px;height:18px}.file-drop strong{font-size:.88rem;font-weight:650;color:inherit}.file-drop span{font-size:.75rem;color:#94a3b8}.file-drop.has-file span{color:var(--teal-700)}.form-actions{display:flex;align-items:center;gap:.65rem;padding-top:.25rem}.inline-form{display:flex;gap:.75rem;flex-wrap:wrap;align-items:end}.inline-form label{flex:1;min-width:200px}.inline-form .btn{min-height:42px;margin-bottom:1px}.rule-picker{position:relative}.rule-picker-trigger{width:100%;min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.55rem .9rem;border:1px solid #d7e0ea;border-radius:10px;background:#f8fafc;box-shadow:inset 0 1px 2px #0f172a05;cursor:pointer;text-align:left;font:inherit;color:var(--ink-2);transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.rule-picker-trigger:hover,.rule-picker-trigger.open{border-color:var(--teal-600);background:#fff;box-shadow:0 0 0 3px #0d94881f}.rule-picker-trigger.minus.open,.rule-picker-trigger.minus:hover{border-color:#f87171;box-shadow:0 0 0 3px #f8717126}.rule-picker-selected{display:flex;align-items:center;gap:.55rem;min-width:0;flex:1}.rule-picker-name{flex:1;min-width:0;font-size:.9rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rule-picker-placeholder{color:#94a3b8;font-size:.9rem}.rule-picker-caret{width:8px;height:8px;border-right:2px solid #94a3b8;border-bottom:2px solid #94a3b8;transform:rotate(45deg);margin-top:-4px;flex-shrink:0}.rule-picker-panel{position:absolute;z-index:50;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 16px 40px #0f172a1f;overflow:hidden;animation:riseIn .18s ease-out}.rule-picker-search{padding:.75rem .75rem .5rem;border-bottom:1px solid var(--line-2)}.rule-picker-search input{background:#fff}.rule-picker-filters{padding:.65rem .75rem;display:grid;gap:.55rem;border-bottom:1px solid var(--line-2);background:#fafbfc}.rule-seg{display:inline-flex;gap:2px;padding:3px;border-radius:9px;background:#eef2f6;width:fit-content}.rule-seg-btn{border:none;background:transparent;padding:.35rem .8rem;border-radius:7px;font:inherit;font-size:.78rem;font-weight:650;color:#64748b;cursor:pointer}.rule-seg-btn.active{background:#fff;color:var(--teal-800);box-shadow:var(--shadow-xs)}.rule-seg-btn.danger.active{color:#b91c1c}.rule-cats{display:flex;flex-wrap:wrap;gap:.35rem}.rule-cat-chip{border:1px solid #e2e8f0;background:#fff;color:#475569;border-radius:999px;padding:.22rem .65rem;font:inherit;font-size:.72rem;font-weight:600;cursor:pointer}.rule-cat-chip.active{border-color:#99f6e4;background:var(--teal-50);color:var(--teal-800)}.rule-cat-chip.minus.active{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.rule-picker-list{max-height:280px;overflow-y:auto;padding:.4rem 0 .55rem}.rule-group-title{padding:.45rem .9rem .25rem;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#94a3b8}.rule-option{width:100%;display:flex;align-items:center;gap:.75rem;padding:.65rem .9rem;border:none;background:transparent;cursor:pointer;text-align:left;font:inherit;color:var(--ink-2)}.rule-option:hover{background:#f0fdfa}.rule-option.active{background:var(--teal-50)}.rule-option.minus:hover,.rule-option.minus.active{background:#fef2f2}.rule-option-main{flex:1;min-width:0;display:grid;gap:.12rem}.rule-option-name{font-size:.88rem;font-weight:600}.rule-option-meta{font-size:.72rem;color:#94a3b8}.rule-points{flex-shrink:0;font-family:var(--font-display);font-size:.95rem;font-weight:700;letter-spacing:-.02em}.rule-points.plus{color:var(--teal-800)}.rule-points.minus{color:#b91c1c}.rule-points em{font-style:normal;font-size:.72rem;font-weight:600;color:#94a3b8;margin-left:1px}.rule-cat-pill{flex-shrink:0;font-size:.68rem;font-weight:700;padding:.15rem .45rem;border-radius:999px}.rule-cat-pill.plus{background:var(--teal-50);color:var(--teal-800)}.rule-cat-pill.minus{background:#fef2f2;color:#b91c1c}.rule-picker-empty{padding:1.5rem 1rem;text-align:center;color:#94a3b8;font-size:.85rem}.rule-preview-card{flex:1;min-width:140px;border:1px solid var(--line);border-radius:10px;background:linear-gradient(180deg,#fff,#f8fafc);padding:.65rem .85rem;display:grid;align-content:center;gap:.15rem}.rule-preview-card .label{font-size:.72rem;font-weight:600;color:var(--muted)}.rule-preview-card strong{font-family:var(--font-display);font-size:1.35rem;font-weight:750;color:var(--teal-800);letter-spacing:-.03em;line-height:1.1}.rule-preview-card strong.minus{color:#b91c1c}.rule-preview-card .hint{font-size:.7rem;color:#94a3b8}.btn{font:inherit;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;border:1px solid transparent;border-radius:8px;padding:.58rem 1rem;font-size:.875rem;font-weight:600;background:var(--teal-700);color:#fff;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.btn:hover{background:var(--teal-800)}.btn:active{transform:translateY(.5px)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn.secondary{background:#fff;color:var(--ink-2);border-color:#d8e0ea}.btn.secondary:hover{background:var(--line-2);border-color:#c5d0dd}.btn.ghost{background:transparent;color:var(--muted);border-color:transparent;box-shadow:none;width:100%;justify-content:flex-start;padding-left:.65rem}.btn.ghost:hover{background:var(--line-2);color:var(--ink-2)}.btn.danger{background:#fff;color:var(--danger);border-color:#fecaca}.btn.danger:hover{background:#fef2f2}.btn.small{padding:.32rem .65rem;font-size:.78rem;border-radius:7px}.btn.block{width:100%}.row{display:flex;gap:.75rem;flex-wrap:wrap;align-items:end}.row>*{flex:1;min-width:140px}.error,.ok{font-size:.82rem;border-radius:8px;padding:.55rem .7rem}.error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca}.ok{color:var(--ok);background:#ecfdf5;border:1px solid #a7f3d0}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:1rem 1.1rem;box-shadow:var(--shadow-xs)}.stat .label{display:block;font-size:.75rem;font-weight:500;color:var(--muted);margin-bottom:.35rem}.stat strong{display:block;font-family:var(--font-display);font-size:1.55rem;font-weight:700;letter-spacing:-.03em;color:var(--ink);line-height:1.1}.stat .hint{margin-top:.35rem;font-size:.72rem;color:#94a3b8}.toolbar{display:flex;gap:.55rem;flex-wrap:wrap;margin-bottom:.9rem;align-items:end}.users-page{gap:1rem}.users-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem}.users-summary-card{border:1px solid var(--line);border-radius:12px;background:#fff;padding:.85rem 1rem;text-align:left;cursor:pointer;box-shadow:var(--shadow-xs);transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.users-summary-card:hover{border-color:#c5d0dd;box-shadow:var(--shadow-sm)}.users-summary-card.active{border-color:var(--teal-600);box-shadow:0 0 0 3px #0d94881f}.users-summary-card .label{display:block;font-size:.72rem;font-weight:600;color:var(--muted);margin-bottom:.2rem}.users-summary-card strong{font-family:var(--font-display);font-size:1.45rem;font-weight:750;letter-spacing:-.03em;color:var(--ink);line-height:1.1}.users-summary-card.warn strong{color:#b45309}.users-summary-card.ok strong{color:var(--teal-800)}.users-summary-card.mute strong{color:#94a3b8}.users-card{padding:0;overflow:hidden}.users-card-head{margin:0;padding:1.1rem 1.25rem .85rem;align-items:center}.users-card .error,.users-card .ok{margin:0 1.25rem .75rem}.user-filter-bar{align-items:center;gap:.5rem;padding:.65rem 1.25rem 1rem;margin:0;border:0;border-radius:0;background:transparent}.user-filter-bar .ui-select{width:auto;min-width:118px;flex:0 0 auto}.user-filter-bar .btn.ghost{width:auto;justify-content:center;padding:.35rem .65rem}.user-filter-search{flex:1;min-width:200px!important;margin:0}.user-filter-search input{min-height:38px;background:#f8fafc}.user-filter-count{font-size:.78rem;font-weight:650;color:var(--muted);white-space:nowrap;padding:.25rem .65rem;border-radius:999px;background:#f1f5f9}.users-table-wrap{margin:0;border-top:1px solid var(--line-2)}.users-table{font-size:.86rem}.users-table th{padding:.65rem 1rem;background:#fafbfc;position:sticky;top:0}.users-table td{padding:.8rem 1rem;vertical-align:middle;border-bottom-color:#eef2f6}.users-table tbody tr:hover td{background:#f7fbfa}.users-table tr.row-pending td{background:#fffbeb}.users-table tr.row-pending:hover td{background:#fef3c7}.users-table .col-actions{text-align:right;white-space:nowrap}.users-table .actions{justify-content:flex-end}.users-table .btn.ghost{width:auto;justify-content:center;color:var(--teal-700);font-weight:650}.users-table .btn.ghost:hover{background:#0d948814;color:var(--teal-800)}.user-cell{display:flex;align-items:center;gap:.7rem;min-width:0}.user-cell-avatar{width:36px;height:36px;border-radius:999px;display:grid;place-items:center;flex-shrink:0;font-weight:750;font-size:.88rem;color:#fff;background:linear-gradient(145deg,#5eead4,#0f766e)}.user-cell-avatar.lg{width:44px;height:44px;font-size:1.05rem}.user-cell-avatar.role-dept_admin{background:linear-gradient(145deg,#93c5fd,#2563eb)}.user-cell-avatar.role-academy_admin{background:linear-gradient(145deg,#fbbf24,#b45309)}.user-cell-text{min-width:0}.user-cell-text strong{display:block;font-size:.9rem;font-weight:650;color:var(--ink);line-height:1.25}.user-cell-text span{display:block;margin-top:2px;font-size:.72rem;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.role-pill{display:inline-flex;align-items:center;padding:.15rem .55rem;border-radius:6px;font-size:.72rem;font-weight:650;background:#f1f5f9;color:#475569}.role-pill.role-student{background:#ecfdf5;color:#047857}.role-pill.role-dept_admin{background:#eff6ff;color:#1d4ed8}.role-pill.role-academy_admin{background:#fffbeb;color:#b45309}.tag.soft{background:#f1f5f9;color:#475569}.modal-user{display:flex;align-items:center;gap:.75rem;min-width:0}.org-card{padding:0;overflow:hidden}.org-card-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem 1.25rem .95rem;flex-wrap:wrap}.org-card-head h2{margin:0}.org-tabs{display:inline-flex;gap:2px;padding:3px;border-radius:10px;background:var(--line-2);border:1px solid var(--line)}.org-tab{border:0;background:transparent;padding:.4rem .75rem;border-radius:8px;font:inherit;font-size:.82rem;font-weight:650;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;gap:.4rem}.org-tab em{font-style:normal;min-width:1.25rem;height:1.25rem;padding:0 .35rem;border-radius:999px;background:#0f172a0f;font-size:.68rem;font-weight:700;display:inline-grid;place-items:center}.org-tab.active{background:#fff;color:var(--teal-800);box-shadow:var(--shadow-xs)}.org-tab.active em{background:#0d94881f;color:var(--teal-800)}.org-body{border-top:1px solid var(--line-2);padding:1rem 1.25rem 1.15rem}.org-add-bar{display:flex;gap:.55rem;align-items:center;margin-bottom:.85rem;padding:.55rem;border:1px dashed #d7e0ea;border-radius:12px;background:linear-gradient(180deg,#fbfcfd,#f6f8fb)}.org-add-bar input{flex:1;min-height:40px;margin:0;background:#fff}.org-add-bar .btn{flex-shrink:0;min-height:40px}.org-roles-hint{margin-bottom:.85rem;padding:.7rem .85rem;border-radius:10px;background:#f0fdfa;border:1px solid #ccfbf1;color:var(--teal-800);font-size:.8rem;line-height:1.45}.org-list{display:grid;gap:.45rem}.org-item{display:flex;align-items:center;gap:.75rem;padding:.7rem .8rem;border:1px solid var(--line);border-radius:12px;background:#fff;transition:border-color .15s ease,background .15s ease}.org-item:hover{border-color:#d0dae6;background:#fafbfc}.org-item.is-editing{border-color:var(--teal-600);background:#f0fdfa;box-shadow:0 0 0 3px #0d94881a}.org-item-icon{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;flex-shrink:0;font-size:.78rem;font-weight:750;color:#fff}.org-item-icon.dept{background:linear-gradient(145deg,#5eead4,#0f766e)}.org-item-icon.group{background:linear-gradient(145deg,#93c5fd,#2563eb)}.org-item-icon.role-student{background:linear-gradient(145deg,#6ee7b7,#047857)}.org-item-icon.role-dept_admin{background:linear-gradient(145deg,#93c5fd,#1d4ed8)}.org-item-icon.role-academy_admin{background:linear-gradient(145deg,#fbbf24,#b45309)}.org-item-main{flex:1;min-width:0}.org-item-main strong{display:block;font-size:.9rem;font-weight:650;color:var(--ink);line-height:1.25}.org-item-main>span{display:block;margin-top:2px;font-size:.72rem;color:#94a3b8}.org-role-title{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.org-item-actions{display:flex;gap:.15rem;flex-shrink:0;opacity:.72}.org-item:hover .org-item-actions,.org-item.is-editing .org-item-actions{opacity:1}.org-item-actions .btn.ghost{width:auto;justify-content:center;padding:.3rem .55rem;color:var(--teal-700);font-weight:650}.org-item-actions .btn.ghost.danger-text{color:#b91c1c}.org-item-actions .btn.ghost.danger-text:hover{background:#fef2f2;color:#991b1b}.org-item-meta{text-align:right;flex-shrink:0;padding-left:.5rem}.org-item-meta em{display:block;font-style:normal;font-family:var(--font-display);font-size:1.15rem;font-weight:750;letter-spacing:-.03em;color:var(--ink);line-height:1.1}.org-item-meta span{font-size:.68rem;color:#94a3b8;font-weight:600}.org-inline-edit{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.org-inline-edit input{flex:1;min-width:140px;min-height:34px;margin:0;background:#fff}.org-inline-edit .btn.ghost{width:auto;justify-content:center}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:860px){.users-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:grid;place-items:center;padding:1.25rem;background:#0f172a6b;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fadeIn .16s ease-out}.modal-panel{width:min(520px,100%);max-height:min(90vh,720px);display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 24px 56px #0f172a38;overflow:hidden;animation:riseIn .18s ease-out}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.15rem 1.25rem .85rem;border-bottom:1px solid var(--line-2)}.modal-head h3{margin:0;font-family:var(--font-display);font-size:1.1rem;font-weight:700;letter-spacing:-.02em;color:var(--ink)}.modal-head .muted{margin:.25rem 0 0;font-size:.78rem}.modal-close{width:32px;height:32px;border:0;border-radius:8px;background:#f1f5f9;color:#64748b;font-size:1.25rem;line-height:1;cursor:pointer;flex-shrink:0}.modal-close:hover{background:#e2e8f0;color:var(--ink)}.modal-body{padding:1.1rem 1.25rem;overflow-y:auto;display:grid;gap:.85rem}.modal-body .row{margin:0}.modal-foot{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.9rem 1.25rem 1.15rem;border-top:1px solid var(--line-2);background:#f8fafc}.modal-foot-right{display:flex;gap:.55rem;margin-left:auto}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.tabs{display:inline-flex;gap:2px;padding:3px;border-radius:9px;background:var(--line-2);border:1px solid var(--line)}.tab{border:none;background:transparent;padding:.38rem .85rem;border-radius:7px;font:inherit;font-size:.82rem;font-weight:600;color:var(--muted);cursor:pointer}.tab.active{background:#fff;color:var(--teal-800);box-shadow:var(--shadow-xs)}.table-wrap{overflow-x:auto;margin:0 -.15rem}table{width:100%;border-collapse:collapse;font-size:.845rem}th,td{text-align:left;padding:.7rem .55rem;border-bottom:1px solid var(--line-2);vertical-align:top}th{color:#94a3b8;font-weight:600;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em}tbody tr:last-child td{border-bottom:none}tbody tr:hover td{background:#fafcfb}.tag{display:inline-block;padding:.12rem .5rem;border-radius:999px;font-size:.7rem;font-weight:600;background:var(--line-2);color:#64748b}.tag.pending{background:#fffbeb;color:#b45309}.tag.approved,.tag.active{background:var(--teal-50);color:var(--teal-800)}.tag.rejected,.tag.disabled{background:#fef2f2;color:#b91c1c}.actions{display:flex;gap:.3rem;flex-wrap:wrap}.rank-medal{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;padding:0 .35rem;border-radius:7px;font-family:var(--font-display);font-weight:700;font-size:.78rem;background:var(--line-2);color:#64748b}.rank-medal.top1{background:#fef3c7;color:#92400e}.rank-medal.top2{background:#e2e8f0;color:#334155}.rank-medal.top3{background:#ffedd5;color:#9a3412}.podium{display:grid;grid-template-columns:1fr 1.15fr 1fr;grid-template-rows:1fr auto;column-gap:.75rem;row-gap:0;margin:.35rem 0 1.35rem;padding:1.25rem 1rem 0;min-height:280px;border-radius:14px;background:radial-gradient(ellipse 60% 80% at 50% 100%,rgba(20,184,166,.1),transparent 60%),linear-gradient(180deg,#f8fafc,#fff);border:1px solid var(--line);overflow:hidden}.podium-card{align-self:end;width:100%;text-align:center;padding:0 .35rem .7rem;animation:riseIn .45s ease-out both}.podium-card.place-1{animation-delay:.08s}.podium-card.place-2{animation-delay:.02s}.podium-card.place-3{animation-delay:.14s}.podium-avatar{width:52px;height:52px;margin:0 auto .55rem;border-radius:999px;display:grid;place-items:center;font-weight:750;font-size:1.15rem;color:#fff;border:3px solid #fff;box-shadow:0 6px 16px #0f172a1a}.podium-avatar.place-1{width:62px;height:62px;font-size:1.35rem;background:linear-gradient(145deg,#fbbf24,#d97706);box-shadow:0 8px 20px #d9770647}.podium-avatar.place-2{background:linear-gradient(145deg,#94a3b8,#64748b)}.podium-avatar.place-3{background:linear-gradient(145deg,#fb923c,#c2410c)}.podium-name{font-size:.95rem;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.podium-card.place-1 .podium-name{font-size:1.05rem}.podium-meta{margin-top:.2rem;font-size:.72rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.podium-score{margin-top:.45rem;font-family:var(--font-display);font-size:1.25rem;font-weight:750;letter-spacing:-.03em;color:var(--teal-800)}.podium-card.place-1 .podium-score{font-size:1.45rem;color:#b45309}.podium-score em{font-style:normal;font-size:.72rem;font-weight:600;color:#94a3b8;margin-left:2px}.podium-empty{display:flex;align-items:flex-end;justify-content:center;min-height:88px;padding:0 .5rem .35rem;font-size:.82rem;color:#94a3b8}.podium-block{width:100%;align-self:end;border-radius:12px 12px 0 0;display:flex;align-items:flex-start;justify-content:center;padding-top:.65rem;color:#fff;font-family:var(--font-display);font-weight:800;letter-spacing:-.02em;box-shadow:inset 0 1px #fff3}.podium-block.place-1{height:110px;background:linear-gradient(180deg,#fbbf24,#d97706);font-size:1.6rem}.podium-block.place-2{height:78px;background:linear-gradient(180deg,#94a3b8,#64748b);font-size:1.35rem}.podium-block.place-3{height:58px;background:linear-gradient(180deg,#fb923c,#c2410c);font-size:1.2rem}.podium-place{line-height:1;text-shadow:0 1px 0 rgba(0,0,0,.12)}.row-top1 td{background:#fef3c759}.row-top2 td{background:#f1f5f9b3}.row-top3 td{background:#ffedd566}@media(max-width:640px){.podium{grid-template-columns:56px 1fr;grid-template-rows:repeat(3,auto);min-height:0;padding:1rem .85rem;column-gap:.75rem;row-gap:.75rem}.podium-block.place-1{grid-column:1;grid-row:1;height:72px;border-radius:10px;align-items:center;padding-top:0}.podium-card.place-1{grid-column:2;grid-row:1;align-self:center}.podium-block.place-2{grid-column:1;grid-row:2;height:72px;border-radius:10px;align-items:center;padding-top:0}.podium-card.place-2{grid-column:2;grid-row:2;align-self:center}.podium-block.place-3{grid-column:1;grid-row:3;height:72px;border-radius:10px;align-items:center;padding-top:0}.podium-card.place-3{grid-column:2;grid-row:3;align-self:center}.podium-card{padding:0;text-align:left;display:grid;grid-template-columns:auto 1fr;grid-template-areas:"avatar name" "avatar meta" "avatar score";column-gap:.75rem;align-items:center}.podium-avatar{grid-area:avatar;margin:0;width:48px;height:48px}.podium-avatar.place-1{width:48px;height:48px;font-size:1.15rem}.podium-name{grid-area:name}.podium-meta{grid-area:meta}.podium-score{grid-area:score;margin-top:.15rem}.podium-empty{min-height:0;justify-content:flex-start;padding:0}}.center{min-height:100vh;display:grid;place-items:center;color:var(--muted)}.empty{text-align:center;padding:2.25rem 1rem;color:#94a3b8;font-size:.875rem}.mobile-bar,.sidebar-backdrop,.bg-mesh{display:none}@media(max-width:900px){.stats{grid-template-columns:1fr}.sidebar{transform:translate(-100%);transition:transform .22s ease}.sidebar.open{transform:translate(0)}.app-main{margin-left:0}.mobile-bar{display:flex}.sidebar-backdrop.show{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a52;z-index:35}.page{padding:1rem 1.1rem 1.5rem}.account-meta{display:none}.account-chip{max-width:none;padding:.22rem;gap:.2rem}}
