*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif;color:#172033;background:#eef2f7}button{font:inherit;cursor:pointer}.login-page{min-height:100vh;position:relative;display:grid;place-items:center;padding:48px 20px;background:radial-gradient(circle at 20% 15%,rgba(36,94,170,.2),transparent 32%),linear-gradient(135deg,#f5f7fb,#e9eef7 52%,#dfe8f6)}.login-page:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(15,39,75,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(15,39,75,.05) 1px,transparent 1px);background-size:28px 28px}.login-shell{position:relative;width:min(1080px,100%);min-height:560px;display:grid;grid-template-columns:1.05fr .95fr;background:#fff;border-radius:28px;box-shadow:0 30px 90px #192e5633;overflow:hidden}.login-hero{position:relative;padding:64px;display:flex;align-items:center;overflow:hidden;color:#fff;background:linear-gradient(135deg,#09214a,#114b91 52%,#1e73d0)}.login-hero:after{content:"";position:absolute;right:-90px;bottom:-110px;width:430px;height:430px;background:url(/logo/logo.png) center/contain no-repeat;opacity:.13}.hero-shade{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 20% 20%,rgba(255,255,255,.18),transparent 28%),linear-gradient(90deg,rgba(0,0,0,.25),transparent)}.hero-content{position:relative;z-index:1}.hero-logo{width:104px;height:104px;border-radius:26px;background:#fffffff5;display:flex;align-items:center;justify-content:center;box-shadow:0 20px 50px #00000040;margin-bottom:34px}.hero-logo img{width:78px;height:78px;object-fit:contain}.eyebrow{margin:0 0 14px;font-size:12px;letter-spacing:.18em;opacity:.72}.eyebrow.dark{color:#2a6ed2;opacity:1}.login-hero h1{margin:0;font-size:40px;line-height:1.2;letter-spacing:.06em}.hero-desc{margin:20px 0 0;font-size:17px;opacity:.9}.hero-tags{margin-top:34px;display:flex;flex-wrap:wrap;gap:10px}.hero-tags span{padding:8px 12px;border-radius:999px;background:#ffffff24;border:1px solid rgba(255,255,255,.2);font-size:13px}.login-panel{padding:78px 58px;display:flex;flex-direction:column;justify-content:center}.panel-title h2{margin:0;font-size:30px;color:#101828}.panel-title p{margin:10px 0 34px;color:#667085}.login-btn{width:100%;border:1px solid #d8e3f4;border-radius:18px;padding:18px 22px;margin-bottom:16px;text-align:left;background:#f4f7fc;color:#17365f;transition:.2s}.login-btn strong{display:block;font-size:18px}.login-btn span{display:block;margin-top:6px;font-size:13px;opacity:.72}.login-btn.primary{color:#fff;border:0;background:linear-gradient(135deg,#17498f,#246cd2);box-shadow:0 14px 32px #2568c94d}.login-btn:hover{transform:translateY(-2px)}.login-note{margin-top:26px;padding:14px 16px;border-radius:14px;background:#f6f8fb;color:#667085;font-size:14px}footer{position:absolute;bottom:22px;color:#667085;font-size:13px}.callback-page{min-height:100vh;display:grid;place-items:center;background:#eef2f7}.loading-card{width:360px;padding:42px;text-align:center;background:#fff;border-radius:24px;box-shadow:0 24px 70px #192e5629}.loading-card img{width:74px;height:74px;object-fit:contain}.layout{min-height:100vh;display:grid;grid-template-columns:270px 1fr}.sidebar{background:linear-gradient(180deg,#102a4c,#0d1f39);color:#fff;padding:24px 18px}.side-brand{display:flex;align-items:center;gap:12px;padding:10px 8px 28px;border-bottom:1px solid rgba(255,255,255,.12)}.side-brand img{width:46px;height:46px;object-fit:contain;border-radius:12px;background:#fff;padding:4px}.side-brand strong{display:block;font-size:17px}.side-brand span{display:block;margin-top:4px;font-size:12px;opacity:.68}nav{padding-top:20px}nav button{width:100%;border:0;padding:14px 16px;margin-bottom:8px;border-radius:14px;background:transparent;color:#ffffffc2;text-align:left}nav button.active,nav button:hover{background:#ffffff1f;color:#fff}.main{padding:30px}.topbar{min-height:96px;background:#fff;border-radius:22px;box-shadow:0 12px 38px #1f2d3d14;padding:22px 28px;display:flex;align-items:center;justify-content:space-between}.topbar h1{margin:0;font-size:26px}.topbar p{margin:7px 0 0;color:#667085}.logout{border:1px solid #d0d5dd;background:#fff;color:#344054;border-radius:12px;padding:10px 18px}.dashboard-hero{margin-top:24px;min-height:180px;border-radius:28px;padding:34px;color:#fff;display:flex;align-items:center;justify-content:space-between;background:radial-gradient(circle at 88% 40%,rgba(255,255,255,.24),transparent 26%),linear-gradient(135deg,#0f3769,#1766be);box-shadow:0 18px 48px #1766be3d}.dashboard-hero h2{margin:0;font-size:34px}.dashboard-hero p{margin:12px 0 0;opacity:.86}.hero-mini-logo{width:116px;height:116px;border-radius:28px;background:#fffffff0;display:grid;place-items:center;flex:none}.hero-mini-logo img{width:82px;height:82px;object-fit:contain}.metric-grid{margin-top:22px;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.metric-card,.quick-card,.panel-card,.content-card{background:#fff;border-radius:22px;box-shadow:0 12px 38px #1f2d3d14}.metric-card{padding:24px}.metric-card span{color:#667085;font-size:14px}.metric-card strong{display:block;margin-top:12px;font-size:36px}.metric-card p{margin:8px 0 0;color:#98a2b3}.quick-card,.panel-card,.content-card{margin-top:22px;padding:28px}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:20px}.section-head h2{margin:0}.section-head p{margin:0;color:#667085}.quick-grid,.action-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}.quick-grid button,.action-grid button{min-height:84px;border:1px solid #e4e7ec;border-radius:18px;background:#f9fafb;color:#1d2939;font-weight:600}.quick-grid button:hover,.action-grid button:hover{border-color:#2b6fce;background:#f1f6ff}.two-col{display:grid;grid-template-columns:1.2fr .8fr;gap:22px}.empty{min-height:140px;display:grid;place-items:center;color:#98a2b3;border:1px dashed #d0d5dd;border-radius:18px;background:#f9fafb}.status-list{list-style:none;padding:0;margin:0}.status-list li{display:flex;align-items:center;gap:10px;padding:11px 0;color:#475467}.status-list span{width:9px;height:9px;border-radius:50%;background:#12b76a}.content-card{min-height:520px}.content-card h2{margin:0 0 10px}.content-card p{color:#667085;margin-bottom:28px}@media (max-width: 900px){.login-shell{grid-template-columns:1fr}.login-hero{padding:38px}.login-hero h1{font-size:30px}.login-panel{padding:38px}.layout{grid-template-columns:1fr}nav{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.main{padding:18px}.topbar{align-items:flex-start;gap:16px}.metric-grid{grid-template-columns:repeat(2,1fr)}.two-col{grid-template-columns:1fr}}.student-form label{display:block;margin:16px 0 8px;font-weight:600;color:#344054}.student-form input{width:100%;height:48px;border:1px solid #d0d5dd;border-radius:14px;padding:0 14px;outline:none;font-size:15px}.student-form input:focus{border-color:#246cd2;box-shadow:0 0 0 4px #246cd21f}.login-btn.center{text-align:center;margin-top:22px}.text-btn{width:100%;margin-top:10px;border:0;background:transparent;color:#246cd2;padding:10px}.error{color:#b42318;background:#fef3f2;border:1px solid #fecdca;padding:10px 12px;border-radius:12px;margin-top:12px}.user-line{font-size:13px;margin-top:8px!important;color:#246cd2!important}.success{color:#027a48;background:#ecfdf3;border:1px solid #abefc6;padding:10px 12px;border-radius:12px;margin-top:12px}.toolbar-buttons{display:flex;gap:10px;flex-wrap:wrap}.small-btn,.import-btn,.student-toolbar button,.pager button{border:1px solid #d0d5dd;background:#fff;border-radius:12px;padding:10px 16px;color:#344054;font-weight:600}.import-btn{color:#fff;border:0;background:linear-gradient(135deg,#17498f,#246cd2)}.import-btn:disabled{opacity:.55;cursor:not-allowed}.import-box{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:18px;border:1px dashed #b8c7df;border-radius:18px;background:#f7faff;margin-bottom:14px}.import-box input{min-width:280px}.format-tip{color:#667085;font-size:13px;margin-bottom:18px}.student-toolbar{display:grid;grid-template-columns:1fr 180px 100px;gap:12px;margin:22px 0}.student-toolbar input{height:44px;border:1px solid #d0d5dd;border-radius:12px;padding:0 12px}.table-wrap{overflow-x:auto;border:1px solid #eaecf0;border-radius:16px}.data-table{width:100%;border-collapse:collapse;min-width:960px}.data-table th,.data-table td{padding:13px 14px;border-bottom:1px solid #eaecf0;text-align:left;font-size:14px}.data-table th{background:#f8fafc;color:#475467}.pager{display:flex;justify-content:flex-end;align-items:center;gap:14px;margin-top:16px}@media (max-width: 900px){.student-toolbar{grid-template-columns:1fr}}.lqcx-page{min-height:100vh;position:relative;padding:42px 18px;background:radial-gradient(circle at 15% 12%,rgba(37,104,201,.24),transparent 32%),radial-gradient(circle at 85% 18%,rgba(12,44,92,.2),transparent 30%),linear-gradient(135deg,#eef3fb,#dfe8f6);overflow-x:hidden}.lqcx-bg{position:fixed;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(15,39,75,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(15,39,75,.06) 1px,transparent 1px);background-size:28px 28px;pointer-events:none}.lqcx-shell{position:relative;width:min(980px,100%);margin:0 auto;display:grid;gap:24px}.lqcx-card,.notice-card{background:#ffffffeb;border:1px solid rgba(255,255,255,.85);border-radius:28px;box-shadow:0 28px 80px #192e562e;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.lqcx-card{padding:34px}.lqcx-header{display:flex;align-items:center;gap:16px;padding-bottom:22px;border-bottom:1px solid #e5eaf3}.lqcx-header img{width:68px;height:68px;object-fit:contain}.lqcx-header p{margin:0 0 6px;color:#246cd2;font-weight:600}.lqcx-header h1{margin:0;font-size:30px;color:#101828}.lqcx-intro{margin:22px 0;padding:14px 16px;border-radius:16px;background:#f3f7ff;color:#475467}.lqcx-form{display:grid;gap:10px}.lqcx-form label{font-weight:600;color:#344054;margin-top:8px}.lqcx-form input{height:50px;border:1px solid #d0d5dd;border-radius:14px;padding:0 14px;font-size:15px;outline:none}.lqcx-form input:focus{border-color:#246cd2;box-shadow:0 0 0 4px #246cd21f}.captcha-row{display:grid;grid-template-columns:1fr 132px;gap:12px}.captcha-row button{border:0;border-radius:14px;color:#12335f;background:#dceaff;font-weight:800;letter-spacing:.08em}.query-btn{margin-top:18px;height:52px;border:0;border-radius:16px;color:#fff;background:linear-gradient(135deg,#17498f,#246cd2);font-weight:800;box-shadow:0 14px 32px #2568c947}.query-btn:disabled{opacity:.6}.lqcx-error{color:#b42318;background:#fef3f2;border:1px solid #fecdca;padding:10px 12px;border-radius:12px}.notice-card{position:relative;padding:34px;overflow:hidden}.notice-ribbon{position:absolute;top:0;right:32px;padding:10px 18px;color:#fff;background:linear-gradient(135deg,#17498f,#246cd2);border-radius:0 0 14px 14px;font-weight:600}.notice-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:24px}.notice-head h2{margin:0 0 8px;font-size:26px}.notice-head p{margin:0;color:#667085}.notice-head span{padding:12px 16px;border:2px solid #d92d20;color:#d92d20;border-radius:50%;font-weight:800;transform:rotate(-12deg)}.notice-card table{width:100%;border-collapse:collapse;overflow:hidden;border-radius:16px}.notice-card th,.notice-card td{border-bottom:1px solid #eaecf0;padding:15px 16px;text-align:left}.notice-card th{width:160px;color:#475467;background:#f8fafc}.lqcx-page footer{position:relative;text-align:center;margin-top:26px;color:#667085}@media (max-width: 640px){.lqcx-card,.notice-card{padding:24px;border-radius:22px}.captcha-row{grid-template-columns:1fr}.notice-head{flex-direction:column}}.flow-page{min-height:100vh;display:grid;grid-template-columns:280px 1fr;background:#eef2f7}.flow-side{background:linear-gradient(180deg,#102a4c,#0d1f39);color:#fff;padding:24px 18px}.flow-brand{display:flex;align-items:center;gap:12px;padding-bottom:24px;border-bottom:1px solid rgba(255,255,255,.12)}.flow-brand img{width:48px;height:48px;object-fit:contain;background:#fff;padding:4px;border-radius:12px}.flow-brand strong{display:block;font-size:18px}.flow-brand span{display:block;margin-top:4px;font-size:12px;opacity:.68}.back-btn,.seed-btn{width:100%;margin-top:16px;border:1px solid rgba(255,255,255,.22);border-radius:14px;padding:12px 14px;color:#fff;background:#ffffff1a}.seed-btn{background:#246cd273}.flow-main{padding:30px}.flow-top{background:#fff;border-radius:22px;box-shadow:0 12px 38px #1f2d3d14;padding:24px 28px;display:flex;justify-content:space-between;gap:18px}.flow-top h1{margin:0}.flow-top p{margin:8px 0 0;color:#667085}.primary-mini{height:44px;border:0;border-radius:14px;padding:0 18px;color:#fff;background:linear-gradient(135deg,#17498f,#246cd2);font-weight:600}.flow-editor{margin-top:22px;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);gap:22px}.editor-card,.list-card{background:#fff;border-radius:24px;box-shadow:0 12px 38px #1f2d3d14;padding:28px}.editor-card h2,.list-card h2{margin-top:0}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.form-grid label,.full-label,.node-card label{display:grid;gap:8px;font-weight:600;color:#344054;font-size:14px}.form-grid input,.form-grid select,.full-label textarea,.node-card input,.node-card select{min-height:44px;border:1px solid #d0d5dd;border-radius:12px;padding:0 12px;font:inherit}.full-label{margin-top:14px}.full-label textarea{padding:12px;min-height:82px}.nodes-head,.list-title,.save-row{margin-top:24px;display:flex;justify-content:space-between;align-items:center}.nodes-head button,.list-title button,.primary-btn-flow,.plain-btn{border:1px solid #d0d5dd;background:#fff;border-radius:12px;padding:10px 16px;font-weight:600}.primary-btn-flow{border:0;background:linear-gradient(135deg,#17498f,#246cd2);color:#fff}.node-list{display:grid;gap:14px;margin-top:14px}.node-card{border:1px solid #e4e7ec;border-radius:18px;padding:18px;background:#f9fafb;display:grid;gap:12px}.node-index{font-weight:800;color:#246cd2}.danger-btn,.flow-actions .danger{border:0;background:#fef3f2;color:#b42318;border-radius:12px;padding:10px 14px;font-weight:600}.empty-box{padding:18px;border:1px dashed #d0d5dd;border-radius:16px;background:#f9fafb;color:#98a2b3}.role-tip{font-size:13px;color:#667085;background:#f6f8fb;border-radius:14px;padding:12px;margin-bottom:14px}.flow-item{border:1px solid #e4e7ec;border-radius:18px;padding:18px;margin-bottom:14px;display:flex;justify-content:space-between;gap:16px}.flow-item h3{margin:0 0 8px}.flow-item p{margin:0 0 6px;color:#667085;font-size:14px}.flow-remark{color:#98a2b3!important}.flow-actions{display:flex;flex-direction:column;gap:8px}.flow-actions button{border:1px solid #d0d5dd;background:#fff;border-radius:12px;padding:9px 14px;font-weight:600}.success-msg{color:#027a48;background:#ecfdf3;border:1px solid #abefc6;padding:10px 12px;border-radius:12px}.error-msg{color:#b42318;background:#fef3f2;border:1px solid #fecdca;padding:10px 12px;border-radius:12px}@media (max-width: 1000px){.flow-page,.flow-editor,.form-grid{grid-template-columns:1fr}}.oa-work{min-height:100vh;display:grid;grid-template-columns:280px 1fr;background:#eef2f7}@media (max-width: 1000px){.oa-work{grid-template-columns:1fr}}.detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0}.detail-grid div{background:#f8fafc;border:1px solid #eaecf0;border-radius:16px;padding:16px}.detail-grid span{display:block;color:#667085;font-size:13px;margin-bottom:8px}.detail-block{margin-top:18px;border:1px solid #eaecf0;border-radius:18px;padding:18px;background:#fff}.detail-block h3{margin-top:0}.timeline{display:grid;gap:12px}.timeline-item{border-left:4px solid #246cd2;background:#f8fafc;border-radius:14px;padding:14px 16px}.timeline-item p{margin:6px 0 0;color:#667085}.table-link{color:#246cd2;font-weight:600;text-decoration:none}.announcement-item{border:1px solid #eaecf0;border-radius:18px;padding:18px;margin-bottom:14px;display:flex;justify-content:space-between;gap:16px;background:#fff}.announcement-item h3{margin:0 0 8px}.announcement-item p{white-space:pre-wrap;color:#344054}.announcement-item small{color:#98a2b3}@media (max-width: 900px){.detail-grid{grid-template-columns:1fr}.announcement-item{flex-direction:column}}.calendar-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.calendar-card{border:1px solid #eaecf0;border-radius:18px;background:#fff;padding:18px;box-shadow:0 8px 24px #1f2d3d0f}.calendar-card h3{margin:8px 0 12px}.calendar-card p{color:#667085;margin:7px 0}.calendar-card a{display:inline-block;margin-top:10px;color:#246cd2;font-weight:600;text-decoration:none}.calendar-date{display:inline-block;padding:7px 10px;border-radius:999px;background:#eef4ff;color:#246cd2;font-weight:800;font-size:13px}.flow-brand img{width:48px;height:48px;object-fit:contain}.upload-box{margin:18px 0;padding:18px;border:1px dashed #b8c7df;border-radius:18px;background:#f7faff;display:flex;justify-content:space-between;gap:16px;align-items:center;flex-wrap:wrap}.upload-box strong{display:block;color:#344054}.upload-box p{margin:6px 0 0;color:#667085;font-size:13px}.attachment-list{display:grid;gap:8px;margin:12px 0 18px}.attachment-list div{padding:10px 12px;border-radius:12px;background:#f2f4f7;color:#475467;font-size:14px}.role-help{margin-bottom:18px;padding:14px 16px;border-radius:16px;background:#f3f7ff;color:#475467}.check-row{display:grid;grid-template-columns:repeat(2,minmax(100px,1fr));gap:8px}.check-row label{font-size:13px;color:#344054}.data-table input[type=text],.data-table input:not([type]){width:100%;height:38px;border:1px solid #d0d5dd;border-radius:10px;padding:0 10px}.op-col{display:flex;gap:8px;flex-wrap:wrap}.small-btn.ok{background:#12b76a;color:#fff}.small-btn.warn{background:#f79009;color:#fff}.small-btn.danger{background:#f04438;color:#fff}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a59;display:flex;align-items:center;justify-content:center;z-index:99}.modal-card{width:min(1100px,calc(100vw - 48px));max-height:calc(100vh - 48px);overflow:auto;background:#fff;border-radius:20px;box-shadow:0 24px 80px #0f172a2e;padding:24px}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(240px,1fr));gap:12px;margin-bottom:20px}.sub-title{margin:16px 0 12px}.role-select-box{grid-column:1 / -1;border:1px solid #e4e7ec;border-radius:16px;padding:14px;background:#f8fafc}.role-select-box>span{display:block;font-weight:800;color:#344054;margin-bottom:10px}.role-select-box small{display:block;margin-top:8px;color:#98a2b3}html,body{max-width:100%;overflow-x:hidden}img{max-width:100%}@media (max-width: 768px){body{background:#eef2f7}.layout,.oa-work,.flow-page{display:block!important;min-height:100vh}.sidebar,.flow-side{width:100%;min-height:auto;padding:16px;border-radius:0 0 22px 22px}.side-brand,.flow-brand{padding-bottom:14px}.side-brand img,.flow-brand img{width:42px;height:42px}.side-brand strong,.flow-brand strong{font-size:16px}nav{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding-top:14px}nav button,.back-btn,.seed-btn{margin:0;min-height:44px;text-align:center;padding:10px 8px;font-size:14px}.main,.flow-main{padding:14px}.topbar,.flow-top{display:block;min-height:auto;padding:18px;border-radius:18px}.topbar h1,.flow-top h1{font-size:22px}.topbar p,.flow-top p{font-size:13px}.logout,.primary-mini{margin-top:14px;width:100%}.dashboard-hero{display:block;min-height:auto;padding:22px;border-radius:20px}.dashboard-hero h2{font-size:26px}.hero-mini-logo{margin-top:18px;width:82px;height:82px}.hero-mini-logo img{width:58px;height:58px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px}.metric-card{padding:18px;border-radius:18px}.metric-card strong{font-size:28px}.quick-card,.panel-card,.content-card,.editor-card,.list-card{padding:18px;border-radius:18px}.quick-grid,.action-grid,.calendar-grid{grid-template-columns:1fr!important;gap:12px}.quick-grid button,.action-grid button{min-height:58px}.two-col,.flow-editor,.form-grid,.detail-grid{grid-template-columns:1fr!important}.section-head,.flow-top,.nodes-head,.list-title,.save-row,.notice-head,.announcement-item,.flow-item{display:block}.toolbar-buttons,.flow-actions{margin-top:12px;display:grid;grid-template-columns:1fr;gap:8px}.small-btn,.import-btn,.student-toolbar button,.pager button,.primary-btn-flow,.plain-btn,.danger-btn{width:100%;min-height:42px}.student-toolbar{grid-template-columns:1fr!important}.student-toolbar input,.student-toolbar select,.form-grid input,.form-grid select,.full-label textarea,.node-card input,.node-card select,.data-table input{width:100%;min-height:44px;font-size:15px}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.data-table{min-width:860px}.data-table th,.data-table td{white-space:nowrap;font-size:13px;padding:10px}.pager{justify-content:stretch;display:grid;grid-template-columns:1fr;text-align:center}.login-page{padding:20px 12px 54px;align-items:start}.login-shell{grid-template-columns:1fr!important;min-height:auto;border-radius:22px}.login-hero{padding:28px}.login-hero h1{font-size:27px}.hero-desc{font-size:14px}.hero-logo{width:82px;height:82px;margin-bottom:22px}.hero-logo img{width:62px;height:62px}.login-panel{padding:28px}.panel-title h2{font-size:24px}.login-btn{border-radius:16px;padding:16px}.lqcx-page{padding:20px 12px 60px}.lqcx-card,.notice-card{padding:20px;border-radius:20px}.lqcx-header{display:block;text-align:center}.lqcx-header img{width:64px;height:64px;margin-bottom:12px}.lqcx-header h1{font-size:25px}.captcha-row{grid-template-columns:1fr!important}.notice-card th,.notice-card td{display:block;width:100%;padding:12px}.modal-card{width:calc(100vw - 24px);max-height:calc(100vh - 24px);padding:16px;border-radius:18px}.modal-head{display:block}.check-row{grid-template-columns:1fr!important}.upload-box,.import-box{display:block}.upload-box input,.import-box input{width:100%;margin-top:12px}}@media (max-width: 420px){.metric-grid{grid-template-columns:1fr!important}nav{grid-template-columns:1fr}.dashboard-hero h2{font-size:23px}.topbar h1,.flow-top h1{font-size:20px}}.slot-box{margin:18px 0;padding:16px;border:1px solid #e4e7ec;border-radius:16px;background:#f8fafc}.slot-box>strong{display:block;margin-bottom:10px}.metric-button{border:0;text-align:left;cursor:pointer;width:100%}.metric-button:hover,.clickable-panel:hover{transform:translateY(-2px);box-shadow:0 16px 40px #1f2d3d1f}.clickable-panel{cursor:pointer;transition:.2s ease}.pinned-board{border:1px solid #f2c94c;background:linear-gradient(180deg,#fffdf2,#fff)}.pinned-board .announcement-item{background:#fffaf0}.status-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))!important}.status-grid .calendar-card{min-height:150px}.warning-box{margin:18px 0;padding:14px 16px;border-radius:14px;background:#fff4e5;color:#9a3412;border:1px solid #fed7aa}.alert-list{display:grid;gap:14px}.alert-item{display:flex;justify-content:space-between;gap:18px;padding:18px;border-radius:18px;border:1px solid #e4e7ec;background:#fff}.alert-item h3{margin:0 0 8px}.alert-item p{margin:0 0 8px;color:#667085}.alert-item.high{border-color:#fecdca;background:#fff5f5}.alert-item.medium{border-color:#fedf89;background:#fffbeb}.empty-state{padding:28px;border-radius:18px;background:#f8fafc;color:#667085;text-align:center}.reset-box{margin:18px 0;padding:16px;border:1px solid #fed7aa;background:#fff7ed;border-radius:16px;display:grid;gap:10px}.reset-box strong{color:#9a3412}.reset-box select,.reset-box input{min-height:42px;border:1px solid #d0d5dd;border-radius:12px;padding:0 12px}select{appearance:none;-webkit-appearance:none;-moz-appearance:none;min-height:44px;width:100%;padding:0 42px 0 14px;border:1px solid #d0d5dd;border-radius:14px;background-color:#fff;background-image:linear-gradient(45deg,transparent 50%,#475467 50%),linear-gradient(135deg,#475467 50%,transparent 50%),linear-gradient(to right,#eef2f7,#eef2f7);background-position:calc(100% - 22px) 19px,calc(100% - 16px) 19px,calc(100% - 38px) 10px;background-size:6px 6px,6px 6px,1px 24px;background-repeat:no-repeat;color:#101828;font-size:15px;font-weight:500;outline:none;cursor:pointer;box-shadow:0 1px 2px #1018280a;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}select:hover{border-color:#98a2b3;background-color:#fcfcfd}select:focus{border-color:#2563eb;box-shadow:0 0 0 4px #2563eb1f}select:disabled{cursor:not-allowed;color:#98a2b3;background-color:#f2f4f7}select option{color:#101828;background:#fff;font-size:15px}.form-grid label,.full-label{color:#344054;font-weight:600}@media (max-width: 768px){select{min-height:46px;border-radius:13px;font-size:15px}}.entry-edit-panel{margin:14px 0 18px;padding:16px;border:1px solid #dbeafe;border-radius:18px;background:linear-gradient(180deg,#eff6ff,#fff)}.entry-add-row{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:10px;align-items:center}.entry-tip{margin:10px 0 0;color:#667085;font-size:13px}.quick-entry{position:relative;display:flex!important;align-items:center;justify-content:center;gap:8px;min-height:62px}.quick-entry.editing{cursor:grab;border:1px dashed #2563eb;background:#f8fbff;padding-right:54px}.quick-entry.editing:active{cursor:grabbing}.quick-entry .drag-handle{font-size:16px;color:#667085}.quick-entry small{display:block;color:#98a2b3;font-size:11px;font-weight:500}.quick-entry b{position:absolute;right:10px;top:10px;padding:3px 7px;border-radius:999px;background:#fee2e2;color:#b42318;font-size:12px;font-style:normal;font-weight:600}@media (max-width: 768px){.entry-add-row{grid-template-columns:1fr}.quick-entry{min-height:56px}}.nav-section{margin:10px 0 18px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.08)}.nav-section:last-child{border-bottom:0}.sidebar nav .sub-nav{margin-left:14px;width:calc(100% - 14px);opacity:.86;font-size:14px;border-left:2px solid rgba(255,255,255,.18);border-radius:10px}.sidebar nav .sub-nav:before{content:"└";margin-right:6px;color:#ffffff73}.sidebar{display:flex;flex-direction:column}.sidebar nav{display:flex;flex-direction:column;flex:1;min-height:0}.sidebar nav .nav-home{margin-bottom:14px}.nav-section{margin:8px 0 16px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.08)}.nav-title{margin:10px 10px 8px;font-size:12px;font-weight:600;color:#ffffff85;letter-spacing:.08em}.nav-profile-fixed{margin-top:auto;padding-top:14px;border-top:1px solid rgba(255,255,255,.12)}.nav-profile-fixed button{width:100%}.sidebar nav .sub-nav:before{content:none}.sidebar{position:relative;padding-bottom:86px}.sidebar nav{overflow-y:auto;padding-bottom:10px}.sidebar-profile-fixed{position:absolute;left:18px;bottom:18px;width:calc(100% - 36px);height:48px;border:1px solid rgba(255,255,255,.18);border-radius:16px;background:#ffffff1a;color:#fff;font-weight:600;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);cursor:pointer;box-shadow:0 14px 34px #0000002e}.sidebar-profile-fixed:hover{background:#ffffff29}.nav-profile-fixed{display:none!important}@media (max-width: 768px){.sidebar{padding-bottom:0}.sidebar-profile-fixed{position:fixed;left:14px;bottom:18px;width:52px;height:52px;z-index:999;border-radius:50%;padding:0;background:#1d4ed8;color:#fff;box-shadow:0 16px 36px #1d4ed859}.sidebar-profile-fixed span{display:none}.sidebar-profile-fixed:before{content:"我";display:block;font-size:17px;font-weight:800;line-height:52px;text-align:center}}.global-user-dock{position:fixed;left:18px;bottom:18px;z-index:99999;display:flex;align-items:center;gap:8px}.global-profile-btn{height:48px;min-width:138px;padding:0 18px;border:1px solid rgba(255,255,255,.18);border-radius:16px;background:linear-gradient(135deg,#1d4ed8,#2563eb);color:#fff;font-weight:800;cursor:pointer;box-shadow:0 16px 36px #1d4ed859}.global-logout-btn{width:48px;height:48px;border:1px solid rgba(255,255,255,.18);border-radius:16px;background:#0f172aeb;color:#fff;font-size:20px;font-weight:900;cursor:pointer;box-shadow:0 16px 36px #0f172a47}.global-profile-btn:hover,.global-logout-btn:hover{transform:translateY(-1px);filter:brightness(1.05)}.profile-mobile{display:none}.sidebar-profile-fixed,.nav-profile-fixed{display:none!important}@media (max-width: 768px){.global-user-dock{left:14px;bottom:16px;gap:7px}.global-profile-btn,.global-logout-btn{width:52px;min-width:52px;height:52px;padding:0;border-radius:50%}.profile-text{display:none}.profile-mobile{display:inline;font-size:17px}.global-logout-btn{font-size:19px}}.mobile-bottom-nav{display:none}@media (max-width: 900px){html,body{width:100%;overflow-x:hidden;background:#f4f6fb}.sidebar{display:none!important}.layout,.oa-work{display:block!important;min-height:100vh;background:#f4f6fb!important}.main,.flow-main{width:100%!important;margin:0!important;padding:14px 14px 96px!important;box-sizing:border-box;background:#f4f6fb!important}.topbar,.flow-top{margin:0 0 14px!important;padding:18px 16px!important;border-radius:22px!important;background:#fff!important;box-shadow:0 8px 24px #0f172a0f!important;border:0!important}.topbar h1,.flow-top h1{font-size:21px!important;line-height:1.25!important;margin:0!important;color:#101828!important}.topbar p,.flow-top p{font-size:13px!important;color:#667085!important}.dashboard-hero{padding:22px 18px!important;border-radius:24px!important;background:linear-gradient(135deg,#0f172a,#1d4ed8)!important;color:#fff!important;box-shadow:0 18px 46px #1d4ed833!important}.dashboard-hero h1,.dashboard-hero p{color:#fff!important}.metric-grid,.quick-grid,.two-col,.calendar-grid,.form-grid,.detail-grid{grid-template-columns:1fr!important;gap:12px!important}.quick-card,.content-card,.panel-card,.metric-card,.calendar-card{border-radius:22px!important;box-shadow:0 8px 24px #0f172a0f!important;border:0!important;background:#fff!important}.quick-grid button,.quick-entry,.primary-btn-flow,.primary-mini,.plain-btn,.danger-btn,.small-btn{min-height:46px!important;border-radius:15px!important;font-size:14px!important}input,select,textarea{min-height:46px!important;border-radius:14px!important;font-size:15px!important;box-sizing:border-box!important}textarea{min-height:108px!important}table{min-width:760px}.content-card:has(table),.table-wrap{overflow-x:auto!important;-webkit-overflow-scrolling:touch}.global-user-dock{display:none!important}.mobile-bottom-nav{position:fixed;left:10px;right:10px;bottom:10px;z-index:99999;display:grid;grid-template-columns:repeat(5,1fr);gap:4px;padding:8px;border-radius:24px;background:#fffffff5;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 16px 46px #0f172a29;border:1px solid rgba(15,23,42,.06)}.mobile-bottom-nav.student{grid-template-columns:repeat(4,1fr)}.mobile-bottom-nav button{min-height:52px;border:0;border-radius:18px;background:transparent;color:#667085;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-weight:800}.mobile-bottom-nav span{font-size:17px;line-height:1;font-weight:900}.mobile-bottom-nav b{font-size:11px;font-weight:800}.mobile-bottom-nav button.active{background:#1d4ed8;color:#fff}}.mobile-dash{min-height:100vh;padding:14px 14px 96px;background:#f4f6fb;box-sizing:border-box}.m-hero{display:flex;align-items:center;gap:16px;padding:22px 18px;border-radius:26px;background:linear-gradient(135deg,#0f172a,#1d4ed8);color:#fff;box-shadow:0 18px 46px #1d4ed838}.m-avatar{width:58px;height:58px;border-radius:20px;background:#ffffff29;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:900}.m-hero h1{margin:0;font-size:21px;line-height:1.25}.m-hero p{margin:6px 0 0;color:#ffffffc7;font-size:13px}.m-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}.m-actions button{min-height:98px;border:0;border-radius:24px;background:#fff;text-align:left;padding:18px;box-shadow:0 8px 24px #0f172a0f}.m-actions b{display:block;color:#101828;font-size:17px}.m-actions span{display:block;margin-top:8px;color:#667085;font-size:12px;line-height:1.45}.m-panel{margin-top:14px;padding:18px;border-radius:24px;background:#fff;box-shadow:0 8px 24px #0f172a0f}.m-panel-head{display:flex;align-items:center;justify-content:space-between}.m-panel-head h2{margin:0;font-size:18px;color:#101828}.m-panel-head span{color:#2563eb;font-weight:900}.m-list{display:grid;gap:10px;margin-top:12px}.m-list div{padding:12px;border-radius:16px;background:#f8fafc}.m-list b{display:block;color:#101828;font-size:14px}.m-list p{margin:6px 0 0;color:#667085;font-size:12px;line-height:1.5}.m-empty{margin:14px 0 0;color:#98a2b3;font-size:13px}.profile-mobile-page{min-height:100vh;padding:24px 24px 110px;background:#f4f6fb;box-sizing:border-box}.profile-head{display:flex;align-items:center;gap:16px;padding:24px;border-radius:28px;background:linear-gradient(135deg,#0f172a,#1d4ed8);color:#fff;box-shadow:0 18px 46px #1d4ed833;margin-bottom:16px}.profile-avatar{width:62px;height:62px;border-radius:22px;background:#ffffff29;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:900}.profile-head h1{margin:0;font-size:24px}.profile-head p{margin:6px 0 0;color:#ffffffc7}.profile-info-card,.profile-action-card{padding:18px;border-radius:24px;background:#fff;box-shadow:0 8px 24px #0f172a0f;margin-bottom:14px}.profile-info-row{display:grid;grid-template-columns:82px 1fr auto;gap:12px;align-items:center;min-height:54px;border-bottom:1px solid #eef2f7}.profile-info-row:last-child{border-bottom:0}.profile-info-row span{color:#667085;font-size:14px}.profile-info-row b{color:#101828;font-size:15px}.profile-info-row em{font-style:normal;color:#2563eb;font-weight:800;font-size:13px}.profile-info-row.clickable{cursor:pointer}.profile-action-card{display:grid;gap:10px}.profile-action-card button{min-height:48px;border:0;border-radius:16px;background:#f2f6ff;color:#1d4ed8;font-weight:800}.profile-action-card button.danger{background:#fff1f2;color:#b42318}@media (max-width: 900px){.profile-mobile-page{padding:16px 14px 110px}.profile-head{padding:22px 18px;border-radius:26px}.profile-head h1{font-size:22px}.profile-info-card,.profile-action-card{border-radius:22px}.profile-info-row{grid-template-columns:72px 1fr auto}}@media (max-width: 900px){.flow-side{display:none!important}.oa-work{display:block!important;min-height:100vh!important;background:#f4f6fb!important}.flow-main{width:100%!important;margin:0!important;padding:14px 14px 110px!important;box-sizing:border-box!important}.flow-top{margin-top:0!important}}.student-total-table-wrap{width:100%;max-width:100%;overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch}.student-total-table{min-width:1880px}.student-total-table th,.student-total-table td{white-space:nowrap}.student-total-table input,.student-total-table select{min-width:118px;max-width:180px;min-height:36px}.student-total-table .row-actions{display:flex;gap:6px;flex-wrap:nowrap}@media (min-width: 901px){.main{overflow-x:hidden}.content-card{max-width:calc(100vw - 340px);box-sizing:border-box}.content-card .table-wrap,.student-total-table-wrap{width:100%;max-width:100%;overflow-x:auto!important;overflow-y:visible;-webkit-overflow-scrolling:touch}.content-card .data-table,.student-total-table{min-width:1900px!important}.content-card .data-table th,.content-card .data-table td{white-space:nowrap}}.system-tabs{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}.system-tabs button{min-height:42px;border:0;border-radius:14px;padding:0 18px;background:#f2f4f7;color:#344054;font-weight:800}.system-tabs button.active{background:#1d4ed8;color:#fff}.system-list{display:grid;gap:12px}.system-row{padding:14px;border-radius:16px;background:#f8fafc;display:grid;grid-template-columns:180px 90px 1fr;gap:12px;align-items:center}.system-row b{color:#101828}.system-row span{font-weight:900}.system-row span.ok{color:#16a34a}.system-row span.bad{color:#dc2626}.system-row span.warn{color:#d97706}.system-row p{margin:0;color:#667085}@media (min-width: 901px){.desktop-global-sidebar{position:fixed;left:0;top:0;bottom:0;width:288px;z-index:9000;background:linear-gradient(180deg,#0f2a4d,#08213f);color:#fff;padding:22px 18px;box-sizing:border-box;overflow-y:auto}.desktop-global-sidebar nav{display:grid;gap:8px;margin-top:18px}.desktop-global-sidebar button{min-height:42px;border:0;border-radius:14px;background:transparent;color:#ffffffd1;text-align:left;padding:0 14px;font-weight:800;cursor:pointer}.desktop-global-sidebar button:hover,.desktop-global-sidebar button.active{background:#ffffff1f;color:#fff}.desktop-global-sidebar .nav-title{margin:14px 8px 6px;color:#ffffff85;font-size:12px;font-weight:900}body:has(.desktop-global-sidebar) .oa-work .flow-side{display:none!important}body:has(.desktop-global-sidebar) .oa-work .flow-main{margin-left:288px!important;width:calc(100vw - 288px)!important;box-sizing:border-box}body:has(.desktop-global-sidebar) .global-user-dock{display:none!important}}.desktop-sidebar-footer{position:sticky;bottom:0;margin-top:18px;padding-top:12px;display:grid;grid-template-columns:1fr 72px;gap:8px;background:linear-gradient(180deg,#08213f00,#08213f 30%)}.desktop-sidebar-footer button{min-height:42px;border-radius:14px;border:0;font-weight:900;cursor:pointer}.desktop-sidebar-footer .sidebar-profile-fixed{background:#ffffff1f!important;color:#fff!important;text-align:center!important}.desktop-sidebar-footer .sidebar-logout-fixed{background:#ef4444!important;color:#fff!important;text-align:center!important}@media (min-width: 901px){.desktop-global-sidebar{display:flex;flex-direction:column}.desktop-global-sidebar nav{flex:1}.flow-top{display:flex;align-items:center;justify-content:space-between;gap:16px}}@media (min-width: 901px){.desktop-global-sidebar{display:flex!important;flex-direction:column!important}.desktop-global-sidebar nav{flex:1!important;padding-bottom:16px!important}.desktop-sidebar-footer{position:sticky!important;bottom:0!important;display:grid!important;grid-template-columns:1fr 52px!important;gap:8px!important;padding:12px 0 0!important;margin-top:12px!important;background:linear-gradient(180deg,#08213f00,#08213f 34%)!important;z-index:20!important}.desktop-sidebar-footer button{min-height:46px!important;border:0!important;border-radius:14px!important;font-weight:900!important;text-align:center!important;cursor:pointer!important}.desktop-profile-btn{background:#2563eb!important;color:#fff!important}.desktop-logout-btn{background:#0f172ab8!important;color:#fff!important;font-size:20px!important}.desktop-global-sidebar>.sidebar-profile-fixed,.desktop-global-sidebar>.sidebar-logout-fixed{display:none!important}}@media (min-width: 901px){body:has(.desktop-global-sidebar) .profile-mobile-page,body:has(.desktop-global-sidebar) .mobile-dash{margin-left:288px!important;width:calc(100vw - 288px)!important;min-height:100vh!important;box-sizing:border-box!important;padding:32px!important}body:has(.desktop-global-sidebar) .profile-mobile-page .profile-head,body:has(.desktop-global-sidebar) .profile-mobile-page .profile-info-card,body:has(.desktop-global-sidebar) .profile-mobile-page .profile-action-card{max-width:none!important;width:100%!important;box-sizing:border-box!important}}.captcha-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}.captcha-row .small-btn{min-width:120px;white-space:nowrap}.bind-badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:600;background:#10b9811f;color:#047857;white-space:nowrap}.bind-badge.unbound{background:#f59e0b26;color:#92400e}.data-table tr.presetRow{background:#f59e0b0a}.oa-upload{width:100%;margin:14px 0 18px}.oa-upload-drop{border:1.5px dashed rgba(59,130,246,.35);background:linear-gradient(180deg,#f8fafcf5,#eff6ffe0);border-radius:20px;padding:24px 18px;text-align:center;cursor:pointer;transition:all .22s ease}.oa-upload-drop:hover,.oa-upload-drop.dragging{border-color:#2563ebd9;box-shadow:0 18px 45px #2563eb24;transform:translateY(-1px)}.oa-upload-icon{width:48px;height:48px;margin:0 auto 10px;border-radius:16px;display:grid;place-items:center;background:#fff;color:#2563eb;font-size:25px;box-shadow:0 10px 28px #2563eb24}.oa-upload-drop strong{display:block;font-size:16px;color:#0f172a}.oa-upload-drop p{margin:8px 0 4px;color:#475569}.oa-upload-drop small{color:#64748b}.oa-upload-input{display:none}.oa-upload-list{display:grid;gap:10px;margin-top:12px}.oa-upload-item{display:flex;align-items:center;gap:12px;border:1px solid rgba(226,232,240,.9);background:#fff;border-radius:16px;padding:12px}.oa-upload-file-icon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:#f1f5f9;font-size:20px}.oa-upload-file-main{min-width:0;flex:1}.oa-upload-file-main b{display:block;font-size:14px;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oa-upload-file-main span{color:#64748b;font-size:12px}.oa-upload-item button{border:0;border-radius:10px;background:#fee2e2;color:#991b1b;padding:8px 10px;cursor:pointer;font-weight:600}.student-total-card{position:relative;overflow:visible}.student-total-head{align-items:flex-start;gap:18px}.batch-menu-wrap{position:relative;display:flex;justify-content:flex-end;min-width:180px;z-index:20}.batch-main-btn{height:44px;border:1px solid rgba(15,23,42,.1);border-radius:14px;padding:0 16px;background:linear-gradient(180deg,#fff,#f8fafc);color:#0f172a;font-weight:900;box-shadow:0 10px 24px #0f172a14;cursor:pointer}.batch-main-btn span{margin-left:8px;font-size:12px;opacity:.65}.batch-menu-panel{position:absolute;right:0;top:54px;width:280px;padding:14px;border-radius:18px;border:1px solid rgba(15,23,42,.1);background:#fffffffa;box-shadow:0 24px 60px #0f172a2e;display:grid;gap:10px;z-index:99}.batch-menu-panel button,.batch-menu-panel select,.batch-menu-panel input[type=password],.batch-upload-label{width:100%;min-height:40px;border-radius:12px;box-sizing:border-box}.batch-menu-panel button,.batch-upload-label{border:0;background:#f1f5f9;color:#0f172a;font-weight:900;display:flex;align-items:center;justify-content:center;cursor:pointer}.batch-menu-panel button:hover,.batch-upload-label:hover{background:#e2e8f0}.batch-menu-panel button:disabled{opacity:.45;cursor:not-allowed}.batch-menu-panel button.danger{background:#fff1f2;color:#be123c}.batch-menu-panel label{display:grid;gap:6px;font-size:12px;color:#475569;font-weight:800}.batch-upload-label input{display:none}.batch-divider{height:1px;background:#0f172a14;margin:4px 0}.selected-file{padding:10px 12px;border-radius:12px;background:#ecfdf5;color:#047857;font-weight:800;font-size:12px;word-break:break-all}.student-toolbar{margin-top:16px}.student-total-table-wrap{border:1px solid rgba(15,23,42,.08);border-radius:16px;background:#fff}@media (max-width: 900px){.student-total-head{display:grid}.batch-menu-wrap{width:100%;justify-content:stretch}.batch-main-btn{width:100%}.batch-menu-panel{position:static;width:100%;margin-top:10px}.student-total-table{min-width:1650px!important}}.student-batch-wrap{position:relative;display:flex;justify-content:flex-end;margin:12px 0 16px;z-index:50}.student-batch-btn{min-height:44px;border:1px solid rgba(15,23,42,.1);border-radius:14px;padding:0 18px;background:#fff;color:#0f172a;font-weight:900;box-shadow:0 10px 24px #0f172a14}.student-batch-btn span{margin-left:8px;font-size:12px;opacity:.65}.student-batch-panel{position:absolute;right:0;top:54px;width:290px;padding:14px;border-radius:18px;background:#fff;border:1px solid rgba(15,23,42,.1);box-shadow:0 24px 60px #0f172a2e;display:grid;gap:10px}.student-batch-wrap{position:relative;display:flex;justify-content:flex-end;z-index:50}.student-batch-btn{min-height:42px;border:0;border-radius:14px;padding:0 18px;background:#111827;color:#fff;font-weight:900}.student-batch-panel{position:absolute;right:0;top:52px;width:300px;padding:14px;border-radius:18px;background:#fff;border:1px solid rgba(15,23,42,.1);box-shadow:0 24px 60px #0f172a2e;display:grid;gap:10px}.student-batch-panel button,.student-batch-panel select,.student-batch-panel input[type=password],.student-upload-label{width:100%;min-height:40px;border-radius:12px;box-sizing:border-box}.student-batch-panel button,.student-upload-label{border:0;background:#f1f5f9;color:#0f172a;font-weight:900;display:flex;align-items:center;justify-content:center}.student-batch-panel button.danger{background:#fff1f2;color:#be123c}.student-batch-panel button:disabled{opacity:.45}.student-upload-label input{display:none}.student-batch-panel label{display:grid;gap:6px;font-size:12px;color:#475569;font-weight:800}.batch-divider{height:1px;background:#0f172a14}.selected-file{padding:10px 12px;border-radius:12px;background:#ecfdf5;color:#047857;font-size:12px;font-weight:800;word-break:break-all}@media (max-width: 900px){.student-batch-wrap{display:grid}.student-batch-panel{position:static;width:100%;margin-top:10px}}.sidebar nav button,.desktop-global-sidebar nav button,.sidebar .nav-title,.desktop-global-sidebar .nav-title{font-weight:800!important}@media (min-width: 901px){.dashboard-main-only,.main.dashboard-main-only{margin-left:300px!important;width:calc(100vw - 300px)!important;max-width:calc(100vw - 300px)!important;min-height:100vh!important;box-sizing:border-box!important;padding:28px 32px 60px!important;overflow-x:hidden!important}.dashboard-main-only .topbar,.dashboard-main-only .content-card,.dashboard-main-only .dashboard-hero,.dashboard-main-only .quick-card,.dashboard-main-only .two-col,.dashboard-main-only .metric-grid{width:100%!important;max-width:100%!important;box-sizing:border-box!important}.dashboard-main-only .student-total-table-wrap{width:100%!important;max-width:100%!important;overflow-x:auto!important}}@media (max-width: 900px){.dashboard-main-only,.main.dashboard-main-only{margin-left:0!important;width:100%!important;max-width:100%!important;padding:14px 14px 110px!important;box-sizing:border-box!important}}.schedule-page .schedule-toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:12px 0 16px}.schedule-page .schedule-toolbar input,.schedule-page .schedule-toolbar select{min-height:42px;border:1px solid #e5e7eb;border-radius:14px;padding:0 12px;background:#fff;font-weight:700}.semester-list{display:flex;gap:10px;flex-wrap:wrap}.semester-list button{min-height:42px;border:0;border-radius:999px;padding:0 16px;background:#f1f5f9;color:#334155;font-weight:900}.semester-list button.active{background:#1d4ed8;color:#fff}.semester-list span{margin-left:8px;opacity:.75}.schedule-grid-wrap{width:100%;overflow-x:auto}.schedule-table{min-width:1100px}.schedule-table th{vertical-align:top}.lesson-card{min-width:120px;display:grid;gap:4px;padding:10px;border-radius:14px;background:#f8fafc;border:1px solid #e2e8f0;margin-bottom:8px}.lesson-card.pending{background:#fff7ed;border-color:#fdba74}.lesson-card b{color:#0f172a}.lesson-card p{margin:0;color:#475569;font-size:13px}.lesson-card small{color:#64748b}.lesson-card em{font-style:normal;color:#c2410c;font-weight:900;font-size:12px}.lesson-actions{display:flex;gap:6px;margin-top:6px}.lesson-actions button{border:0;border-radius:10px;padding:6px 8px;background:#e0ecff;color:#1d4ed8;font-weight:900;cursor:pointer}.transfer-list{display:grid;gap:12px}.transfer-item{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:14px;border-radius:16px;background:#f8fafc;border:1px solid #e2e8f0}.transfer-item p{margin:6px 0;color:#475569}.schedule-result{max-height:260px;overflow:auto;background:#0f172a;color:#e5e7eb;border-radius:16px;padding:14px;font-size:12px}@media (max-width: 900px){.schedule-page .schedule-toolbar{display:grid}.schedule-page .schedule-toolbar input,.schedule-page .schedule-toolbar select,.schedule-page .schedule-toolbar button{width:100%}.transfer-item{display:grid}}.semester-pill{display:inline-flex;align-items:center;gap:4px;border-radius:999px;background:#f1f5f9;padding:4px}.semester-pill.active{background:#dbeafe}.semester-pill>button:first-child{background:transparent!important}.semester-pill .semester-delete{min-height:34px;border:0;border-radius:999px;padding:0 12px;background:#fee2e2!important;color:#b91c1c!important;font-weight:900}.semester-list{display:grid;gap:12px}.semester-card{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:16px;border-radius:18px;background:#f8fafc;border:1px solid #e2e8f0}.semester-card.active{border-color:#60a5fa;background:#eff6ff}.semester-card b{color:#0f172a;font-size:16px}.semester-card p{margin:6px 0 0;color:#64748b}@media (max-width: 900px){.semester-card{display:grid}}.schedule-modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99999;background:#0f172a7a;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:grid;place-items:center;padding:20px}.schedule-modal{width:min(780px,96vw);max-height:88vh;overflow:auto;border-radius:28px;background:#fff;box-shadow:0 30px 90px #0f172a47;padding:22px}.schedule-modal-head{display:flex;justify-content:space-between;gap:16px;margin-bottom:18px}.schedule-modal-head h2{margin:0;color:#0f172a}.schedule-modal-head p{margin:6px 0 0;color:#64748b}.schedule-modal-head>button{width:42px;height:42px;border:0;border-radius:14px;background:#f1f5f9;font-size:22px;font-weight:900;cursor:pointer}.schedule-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}.schedule-form-grid label{display:grid;gap:7px;color:#475569;font-weight:900;font-size:13px}.schedule-form-grid input{min-height:44px;border:1px solid #e2e8f0;border-radius:14px;padding:0 12px;font-size:14px}.lesson-select-list{display:grid;gap:10px;max-height:300px;overflow:auto;margin:12px 0 16px}.lesson-select-list button{border:1px solid #e2e8f0;border-radius:16px;background:#f8fafc;padding:13px;text-align:left;display:grid;gap:4px;cursor:pointer}.lesson-select-list button.active{border-color:#2563eb;background:#eff6ff}.lesson-select-list b{color:#0f172a}.lesson-select-list span{color:#475569}.lesson-select-list em{font-style:normal;color:#c2410c;font-weight:900}.schedule-modal-actions{display:flex;justify-content:flex-end;gap:10px}@media (max-width: 900px){.schedule-form-grid{grid-template-columns:1fr}.schedule-modal{padding:18px;border-radius:22px}}.schedule-form-grid select,.schedule-toolbar select{min-height:44px;border:1px solid #e2e8f0;border-radius:14px;padding:0 12px;background:#fff;font-size:14px;font-weight:800;color:#0f172a}.schedule-form-grid-3{grid-template-columns:1fr 1fr 1fr}@media (max-width: 900px){.schedule-form-grid-3{grid-template-columns:1fr}}.log-filter-card{border:1px solid rgba(226,232,240,.95);background:linear-gradient(180deg,#f8fafc,#fff);border-radius:22px;padding:16px;margin-bottom:18px}.log-type-grid{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:10px;margin:12px 0 16px}.log-type-grid button{min-height:58px;border:1px solid #e2e8f0;border-radius:16px;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 14px;cursor:pointer;box-shadow:0 8px 20px #0f172a0a}.log-type-grid button b{color:#334155}.log-type-grid button span{min-width:26px;height:26px;border-radius:999px;display:grid;place-items:center;background:#f1f5f9;color:#475569;font-weight:900}.log-type-grid button.active{background:#eff6ff;border-color:#2563eb}.log-type-grid button.active b{color:#1d4ed8}.log-type-grid button.active span{background:#2563eb;color:#fff}.log-time-row{display:flex;gap:12px;flex-wrap:wrap;align-items:end}.log-time-row label{display:grid;gap:6px;color:#475569;font-size:13px;font-weight:900}.log-time-row input{min-height:42px;border:1px solid #e2e8f0;border-radius:14px;padding:0 12px;background:#fff}.log-tag{display:inline-flex;align-items:center;min-height:26px;padding:0 10px;border-radius:999px;background:#f1f5f9;color:#334155;font-size:12px;font-weight:900;white-space:nowrap}.log-admin-row{justify-content:flex-end}@media (max-width: 900px){.log-type-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.log-time-row{display:grid}.log-time-row input,.log-time-row button{width:100%}}.status-pill,.result-source{display:inline-flex;align-items:center;min-height:26px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:900;white-space:nowrap}.result-source{background:#eef2ff;color:#3730a3}.status-pill.ok{background:#dcfce7;color:#166534}.status-pill.bad{background:#fee2e2;color:#991b1b}.status-pill.warn{background:#fef3c7;color:#92400e}.status-pill.muted{background:#f1f5f9;color:#475569}.status-pill.info{background:#dbeafe;color:#1d4ed8}.approval-flow-line{display:grid;gap:14px;margin-top:14px}.approval-step{display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:flex-start;position:relative}.approval-step:not(:last-child):after{content:"";position:absolute;left:20px;top:42px;bottom:-14px;width:2px;background:#e2e8f0}.step-dot{width:42px;height:42px;border-radius:999px;display:grid;place-items:center;font-weight:900;background:#f1f5f9;color:#475569;z-index:1}.step-main{min-height:42px;border:1px solid #e2e8f0;border-radius:18px;background:#fff;padding:12px 14px}.step-main strong{color:#0f172a}.step-main p{margin:4px 0;color:#475569}.step-main small{color:#64748b}.step-main em{display:block;margin-top:8px;font-style:normal;color:#334155;background:#f8fafc;border-radius:12px;padding:8px 10px}.approval-step.ok .step-dot{background:#dcfce7;color:#166534}.approval-step.bad .step-dot{background:#fee2e2;color:#991b1b}.approval-step.warn .step-dot{background:#fef3c7;color:#92400e}.approval-step.info .step-dot{background:#dbeafe;color:#1d4ed8}.approval-step.muted .step-dot{background:#f1f5f9;color:#475569}.notice-main{background:radial-gradient(circle at top left,rgba(37,99,235,.1),transparent 32%),linear-gradient(180deg,#f6f8fc,#eef2f7)}.notice-hero{display:flex;justify-content:space-between;align-items:stretch;gap:18px;margin-bottom:18px;padding:26px;border-radius:28px;background:linear-gradient(135deg,#fff,#eff6ff);box-shadow:0 20px 55px #0f172a14}.notice-hero h1{margin:4px 0;font-size:30px;color:#0f172a}.notice-hero p{margin:0;color:#64748b}.notice-hero-stat{min-width:138px;border-radius:24px;background:#0f172a;color:#fff;display:grid;place-items:center;align-content:center}.notice-hero-stat strong{font-size:34px;line-height:1}.notice-hero-stat span{margin-top:6px;color:#ffffffbd;font-weight:800}.notice-filter-card,.notice-list-card{border-radius:24px;background:#ffffffeb;border:1px solid rgba(226,232,240,.9);box-shadow:0 18px 45px #0f172a0f}.notice-filter-card{padding:16px;margin-bottom:16px}.notice-tabs{display:flex;gap:10px;flex-wrap:wrap}.notice-tabs button{border:0;border-radius:999px;min-height:42px;padding:0 14px;background:#f1f5f9;color:#334155;font-weight:900;cursor:pointer}.notice-tabs button span{margin-left:8px;min-width:24px;height:24px;display:inline-grid;place-items:center;border-radius:999px;background:#fff;color:#64748b}.notice-tabs button.active{background:#2563eb;color:#fff}.notice-tabs button.active span{color:#2563eb}.notice-tools{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}.notice-tools input{flex:1;min-width:220px;min-height:42px;border:1px solid #e2e8f0;border-radius:14px;padding:0 14px;background:#fff}.notice-list-card{padding:14px;display:grid;gap:12px}.notice-card{display:grid;grid-template-columns:54px 1fr auto;gap:14px;align-items:center;padding:16px;border-radius:20px;background:#fff;border:1px solid #edf2f7;box-shadow:0 10px 28px #0f172a0a}.notice-icon{width:54px;height:54px;border-radius:18px;display:grid;place-items:center;font-weight:900;background:#eff6ff;color:#1d4ed8}.notice-card.schedule .notice-icon{background:#ecfdf5;color:#047857}.notice-card.approval .notice-icon{background:#eff6ff;color:#1d4ed8}.notice-card.announcement .notice-icon{background:#fff7ed;color:#c2410c}.notice-card.system .notice-icon{background:#f1f5f9;color:#475569}.notice-card-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.notice-card-head h3{margin:0;color:#0f172a;font-size:16px}.notice-card-head span{min-height:24px;display:inline-flex;align-items:center;padding:0 9px;border-radius:999px;background:#f1f5f9;color:#475569;font-size:12px;font-weight:900}.notice-body p{margin:7px 0;color:#475569;line-height:1.55}.notice-meta{display:flex;gap:12px;flex-wrap:wrap;color:#94a3b8}.notice-open{min-height:40px;border:0;border-radius:14px;padding:0 16px;background:#0f172a;color:#fff;font-weight:900;cursor:pointer}.notice-empty{text-align:center;padding:42px 16px;color:#64748b}.notice-empty div{font-size:20px;color:#0f172a;font-weight:900}@media (max-width: 900px){.notice-main{padding:16px 14px 110px!important}.notice-hero{border-radius:26px;padding:22px 18px;display:grid}.notice-hero h1{font-size:24px}.notice-hero-stat{min-height:92px;width:100%}.notice-filter-card,.notice-list-card{border-radius:22px}.notice-tabs{display:grid;grid-template-columns:repeat(2,1fr)}.notice-tabs button{width:100%}.notice-tools{display:grid}.notice-tools input,.notice-tools button{width:100%}.notice-card{grid-template-columns:46px 1fr;align-items:start}.notice-icon{width:46px;height:46px;border-radius:16px}.notice-open{grid-column:1 / -1;width:100%}}.notice-mobile-head,.notice-mobile-search,.notice-mobile-tabs{display:none}@media (max-width: 900px){.notice-page .flow-side,.notice-page .notice-hero,.notice-page .notice-filter-card{display:none!important}.notice-main{margin-left:0!important;width:100%!important;min-height:100vh!important;padding:18px 14px 112px!important;background:radial-gradient(circle at 20% 0%,rgba(37,99,235,.16),transparent 32%),linear-gradient(180deg,#f8fbff,#eef2f7)!important}.notice-mobile-head{display:flex;align-items:center;justify-content:space-between;padding:6px 2px 16px}.notice-mobile-head h1{margin:0;font-size:28px;color:#0f172a;letter-spacing:-.04em}.notice-mobile-head p{margin:4px 0 0;color:#64748b;font-weight:700}.notice-mobile-head button{border:0;border-radius:999px;min-height:38px;padding:0 15px;background:#0f172a;color:#fff;font-weight:900}.notice-mobile-search{display:block;margin-bottom:12px}.notice-mobile-search input{width:100%;height:48px;border:0;border-radius:18px;padding:0 16px;background:#fffffff2;box-shadow:0 12px 30px #0f172a12;font-size:15px;box-sizing:border-box}.notice-mobile-tabs{display:flex;gap:8px;overflow-x:auto;margin:0 -14px 4px;padding:2px 14px 12px;-webkit-overflow-scrolling:touch}.notice-mobile-tabs::-webkit-scrollbar{display:none}.notice-mobile-tabs button{flex:0 0 auto;height:38px;border:0;border-radius:999px;padding:0 13px;background:#ffffffeb;color:#475569;font-weight:900;box-shadow:0 8px 18px #0f172a0d}.notice-mobile-tabs button.active{background:#2563eb;color:#fff}.notice-mobile-tabs span{margin-left:4px;opacity:.8}.notice-list-card{padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;gap:10px!important}.notice-card{position:relative;grid-template-columns:44px 1fr!important;gap:12px!important;padding:15px!important;border:0!important;border-radius:22px!important;background:#fffffff5!important;box-shadow:0 14px 36px #0f172a14!important}.notice-icon{width:44px!important;height:44px!important;border-radius:16px!important;font-size:15px!important}.notice-card-head{display:block!important}.notice-card-head h3{font-size:16px!important;line-height:1.3;padding-right:54px}.notice-card-head span{position:absolute;right:14px;top:16px;min-height:24px;font-size:11px}.notice-body p{margin:8px 0!important;font-size:14px;line-height:1.55;color:#475569}.notice-meta{display:grid!important;gap:3px!important;font-size:12px}.notice-open{grid-column:2 / 3!important;justify-self:start;width:auto!important;min-height:34px!important;padding:0 14px!important;margin-top:4px;border-radius:999px!important;background:#eff6ff!important;color:#1d4ed8!important}.notice-empty{border-radius:24px;background:#fffffff0;box-shadow:0 14px 36px #0f172a12}}.schedule-upload{margin-top:18px;width:100%}.schedule-upload .oa-upload-drop{width:100%;min-height:168px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;border:1.5px dashed rgba(37,99,235,.28);border-radius:22px;background:linear-gradient(180deg,#f8fbfffa,#f1f7ffe0);cursor:pointer;text-align:center;box-sizing:border-box;overflow:hidden}.schedule-upload .oa-upload-drop.dragging{border-color:#2563ebbf;background:#eff6fff2}.schedule-upload .oa-upload-input{display:none}.schedule-upload .oa-upload-icon{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:#fff;box-shadow:0 12px 32px #0f172a14;font-size:24px;line-height:1}.schedule-upload .oa-upload-drop strong{font-size:16px;color:#0f172a}.schedule-upload .oa-upload-drop p,.schedule-upload .oa-upload-drop small{margin:0;color:#64748b}.schedule-upload .oa-upload-list{margin-top:14px}.schedule-upload .oa-upload-item{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid rgba(226,232,240,.9);border-radius:16px;background:#fff}.schedule-upload .oa-upload-file-main{flex:1;display:flex;flex-direction:column;gap:4px}.schedule-upload .save-row{margin-top:16px}@media (max-width: 900px){.schedule-upload .oa-upload-drop{min-height:150px;border-radius:18px;padding:18px}}@media (max-width: 900px){.notice-mobile-actions{display:flex;gap:8px;align-items:center}.notice-mobile-actions button{height:42px;min-width:64px;padding:0 14px;border:0;border-radius:999px;background:#2563eb;color:#fff;font-weight:900;box-shadow:0 10px 22px #2563eb2e}.notice-mobile-actions button.danger{background:#0f172a}}@media (max-width: 900px){.notice-tools .danger-btn{display:none!important}}.data-cabin-page{display:flex;flex-direction:column;gap:22px}.data-cabin-hero{border-radius:28px;padding:30px;background:linear-gradient(135deg,#eef5ff,#fff);border:1px solid rgba(148,163,184,.22);display:flex;justify-content:space-between;align-items:center;box-shadow:0 18px 45px #0f172a14}.data-cabin-hero h2{margin:4px 0 8px;font-size:32px;color:#0f172a}.data-cabin-hero p{color:#64748b;font-weight:700}.data-cabin-logo{width:86px;height:86px;border-radius:24px;background:#fff;display:grid;place-items:center;box-shadow:0 16px 34px #0f172a1a}.data-cabin-logo img{width:58px;height:58px;object-fit:contain}.data-metric-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}.data-metric-card{text-align:left;border:0;border-radius:24px;padding:20px;background:#fff;box-shadow:0 14px 32px #0f172a14;cursor:pointer}.data-metric-card.primary{background:linear-gradient(135deg,#1d4ed8,#2563eb);color:#fff}.data-metric-card span{display:block;color:inherit;opacity:.78;font-weight:900}.data-metric-card strong{display:block;margin:8px 0;font-size:34px}.data-metric-card p{margin:0;color:inherit;opacity:.72;font-weight:700}.data-cabin-layout{display:grid;grid-template-columns:2fr 1fr;gap:18px}.data-panel{border-radius:26px;background:#fff;padding:22px;box-shadow:0 14px 35px #0f172a14;border:1px solid rgba(148,163,184,.18)}.data-panel-large{grid-row:span 2}.data-entry-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.data-entry{min-height:92px;border:1px solid rgba(148,163,184,.22);border-radius:20px;background:#f8fbff;text-align:left;padding:16px;cursor:pointer}.data-entry b{display:block;color:#0f172a;font-size:15px}.data-entry span{display:block;margin-top:8px;color:#64748b;font-size:12px;font-weight:700}.data-entry em{display:inline-block;margin-top:10px;font-style:normal;color:#dc2626;font-weight:900}.data-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.data-list li{padding:12px;border-radius:16px;background:#f8fafc}.data-list b{display:block;color:#0f172a}.data-list span{display:block;margin-top:5px;color:#64748b;font-size:13px;line-height:1.5}.system-mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.system-mini-grid div{border-radius:18px;background:#f8fafc;padding:16px}.system-mini-grid strong{display:block;font-size:26px;color:#0f172a}.system-mini-grid span{color:#64748b;font-weight:800}.mobile-data-cabin{padding-bottom:110px}.m-data-hero{border-radius:28px;padding:22px;background:linear-gradient(135deg,#eaf2ff,#fff);display:flex;justify-content:space-between;align-items:center;box-shadow:0 16px 36px #0f172a14}.m-data-hero h1{margin:6px 0;font-size:24px;color:#0f172a}.m-data-hero p,.m-data-hero span{margin:0;color:#64748b;font-weight:800}.m-data-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.m-data-stats button{border:0;border-radius:22px;padding:16px 8px;background:#fff;box-shadow:0 10px 26px #0f172a14}.m-data-stats strong{display:block;font-size:26px;color:#1d4ed8}.m-data-stats span{display:block;margin-top:4px;color:#64748b;font-weight:900;font-size:12px}.m-core-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.m-core-actions button{border:0;border-radius:22px;padding:18px;text-align:left;background:#fff;box-shadow:0 12px 28px #0f172a14}.m-core-actions b{display:block;color:#0f172a;font-size:16px}.m-core-actions span{display:block;margin-top:6px;color:#64748b;font-size:12px;font-weight:800}.m-more-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.m-more-grid button{border:0;border-radius:18px;padding:14px 8px;background:#eef4ff;color:#17335f;font-weight:900}@media (max-width:1200px){.data-metric-grid{grid-template-columns:repeat(3,1fr)}.data-cabin-layout{grid-template-columns:1fr}.data-entry-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:900px){.data-cabin-page{display:none}}.data-cabin-page{gap:26px}.data-cabin-hero{min-height:150px;padding:34px 38px;border-radius:32px;background:radial-gradient(circle at 85% 20%,rgba(37,99,235,.13),transparent 28%),linear-gradient(135deg,#f7fbff,#eef5ff 48%,#fff)}.data-cabin-hero h2{font-size:36px;letter-spacing:-1px}.data-metric-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.data-metric-card{min-height:142px;padding:24px 26px;border-radius:28px;transition:.18s ease}.data-metric-card:hover{transform:translateY(-3px);box-shadow:0 22px 48px #0f172a21}.data-metric-card strong{font-size:42px;letter-spacing:-1px}.data-cabin-layout{grid-template-columns:minmax(0,1.55fr) minmax(360px,.85fr);gap:22px;align-items:start}.data-panel{border-radius:30px;padding:28px}.data-panel-large{grid-row:span 3}.data-entry-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.data-entry{min-height:112px;border-radius:24px;padding:20px;background:linear-gradient(180deg,#fff,#f8fbff)}.data-entry b{font-size:16px}.data-entry span{font-size:13px}.data-list li{padding:16px;border-radius:20px}.system-mini-grid div{border-radius:22px;padding:18px}.mobile-data-cabin{padding:22px 18px 118px;gap:18px;background:radial-gradient(circle at 50% -8%,rgba(37,99,235,.14),transparent 32%),linear-gradient(180deg,#f7fbff,#eef3f8)}.m-data-hero{min-height:150px;padding:26px;border-radius:32px;background:radial-gradient(circle at 90% 15%,rgba(37,99,235,.13),transparent 26%),linear-gradient(135deg,#f7fbff,#fff)}.m-data-hero h1{font-size:27px;line-height:1.25;letter-spacing:-.5px}.m-avatar{width:62px;height:62px;border-radius:22px;display:grid;place-items:center;background:#0f172a;color:#fff;font-size:26px;font-weight:900}.m-data-stats{gap:12px}.m-data-stats button{min-height:102px;border-radius:28px}.m-data-stats strong{font-size:34px}.m-core-actions{grid-template-columns:1fr;gap:12px}.m-core-actions button{min-height:88px;border-radius:28px;padding:22px 24px;background:linear-gradient(135deg,#fff,#f8fbff)}.m-core-actions b{font-size:19px}.m-core-actions span{font-size:14px}.mobile-data-cabin .m-panel{border-radius:30px;padding:24px;background:#fff;box-shadow:0 18px 42px #0f172a14}.mobile-data-cabin .m-panel-head h2{font-size:22px}.mobile-data-cabin .m-list div{border-radius:22px;padding:18px;background:#f8fafc}.m-more-grid{grid-template-columns:repeat(2,1fr);gap:12px}.m-more-grid button{min-height:58px;border-radius:22px;background:linear-gradient(135deg,#eef4ff,#fff)}@media (min-width:1400px){.data-metric-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.data-metric-card{min-height:150px}}@media (max-width:900px){.mobile-data-cabin{display:flex;flex-direction:column}}html,body,#app{touch-action:manipulation;-webkit-text-size-adjust:100%}.data-cabin-page{gap:18px!important}.data-cabin-hero{min-height:128px!important;padding:28px 34px!important;border-radius:30px!important}.data-cabin-hero h2{font-size:34px!important}.data-metric-grid{grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:14px!important}.data-metric-card{min-height:132px!important;padding:22px!important;border-radius:26px!important}.data-metric-card strong{font-size:38px!important}.admin-ops-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.admin-ops-row button{border:1px solid rgba(148,163,184,.2);border-radius:24px;padding:20px 22px;background:radial-gradient(circle at 90% 20%,rgba(37,99,235,.1),transparent 32%),linear-gradient(135deg,#fff,#f8fbff);text-align:left;box-shadow:0 14px 32px #0f172a12;cursor:pointer}.admin-ops-row button:hover{transform:translateY(-2px);box-shadow:0 20px 44px #0f172a1f}.admin-ops-row b{display:block;color:#0f172a;font-size:16px}.admin-ops-row span{display:block;margin-top:8px;color:#64748b;font-size:13px;font-weight:800}.data-cabin-layout{grid-template-columns:minmax(0,1.6fr) minmax(330px,.8fr)!important;gap:18px!important}.data-panel{padding:24px!important;border-radius:28px!important}.data-entry-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:12px!important}.data-entry{min-height:88px!important;padding:16px!important;border-radius:20px!important}.data-list li{padding:13px!important}@media (max-width: 900px){html,body{overscroll-behavior:none}.mobile-data-cabin{padding:14px 14px 94px!important;gap:12px!important}.m-data-hero{min-height:112px!important;padding:18px 20px!important;border-radius:26px!important}.m-data-hero h1{font-size:23px!important;margin:4px 0!important}.m-data-hero p,.m-data-hero span{font-size:14px!important}.m-avatar{width:54px!important;height:54px!important;border-radius:18px!important;font-size:23px!important}.m-data-stats{gap:8px!important}.m-data-stats button{min-height:82px!important;border-radius:22px!important;padding:10px 6px!important}.m-data-stats strong{font-size:28px!important}.m-data-stats span{font-size:12px!important}.m-core-actions{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}.m-core-actions button{min-height:78px!important;border-radius:22px!important;padding:16px 18px!important}.m-core-actions b{font-size:17px!important}.m-core-actions span{font-size:12px!important}.mobile-data-cabin .m-panel{border-radius:24px!important;padding:18px!important}.mobile-data-cabin .m-panel-head h2{font-size:19px!important}.mobile-data-cabin .m-list div{padding:14px!important;border-radius:18px!important}.m-more-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important}.m-more-grid button{min-height:48px!important;border-radius:18px!important;font-size:13px!important}}@media (max-width: 1300px){.data-metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}.admin-ops-row{grid-template-columns:repeat(2,minmax(0,1fr))}.data-entry-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}.side-user-role{margin:14px 18px 20px;padding:14px 16px;border-radius:18px;background:#ffffff14;border:1px solid rgba(255,255,255,.1);color:#ffffffeb}.side-user-role span{display:block;font-size:11px;font-weight:800;color:#ffffff8c;margin-bottom:5px}.side-user-role strong{display:block;font-size:14px;font-weight:900;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-user-role p{margin:6px 0 0;font-size:12px;font-weight:800;color:#bfdbfeeb;line-height:1.45}.dashboard-main-only>.dashboard-home-panel{margin-top:0}.dashboard-main-only{padding-top:24px}.schedule-import-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#0f172a7a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;padding:24px}.schedule-import-dialog{width:min(720px,94vw);max-height:82vh;background:#fffffff5;border:1px solid rgba(148,163,184,.35);border-radius:24px;box-shadow:0 30px 90px #0f172a47;overflow:hidden}.schedule-import-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:22px 24px;background:linear-gradient(135deg,#f8fafc,#eef2ff);border-bottom:1px solid rgba(148,163,184,.25)}.schedule-import-head h2{margin:0;font-size:22px;color:#0f172a}.schedule-import-head p{margin:6px 0 0;color:#64748b}.schedule-import-head button{width:34px;height:34px;border:0;border-radius:12px;background:#fff;color:#334155;font-size:22px;cursor:pointer}.schedule-import-body{padding:20px 24px;max-height:50vh;overflow:auto}.schedule-import-body pre{margin:0;white-space:pre-wrap;word-break:break-word;font-family:inherit;font-size:15px;line-height:1.75;color:#1e293b}.schedule-import-actions{padding:16px 24px 22px;display:flex;justify-content:flex-end;border-top:1px solid rgba(148,163,184,.22)}@media (max-width: 900px){.schedule-import-mask{align-items:flex-end;padding:12px}.schedule-import-dialog{width:100%;max-height:86vh;border-radius:22px}.schedule-import-head{padding:18px}.schedule-import-body{padding:16px 18px}.schedule-import-actions{padding:14px 18px 18px}.schedule-import-actions button{width:100%}}.oa-loading-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;background:#0f172a85;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);display:flex;align-items:center;justify-content:center;padding:24px}.oa-loading-dialog{width:min(460px,92vw);border-radius:28px;padding:34px 30px 30px;background:#fffffff5;border:1px solid rgba(226,232,240,.75);box-shadow:0 34px 90px #0f172a52;text-align:center}.oa-loading-ring{width:74px;height:74px;margin:0 auto 18px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#eff6ff,#eef2ff)}.oa-loading-ring span{width:42px;height:42px;border-radius:50%;border:4px solid rgba(37,99,235,.18);border-top-color:#2563eb;animation:oaSpin .85s linear infinite}.oa-loading-dialog h2{margin:0;font-size:23px;color:#0f172a}.oa-loading-dialog p{margin:12px 0 18px;color:#334155;font-weight:700}.oa-loading-dialog small{display:block;margin-top:16px;color:#64748b;line-height:1.7}.oa-loading-bar{height:9px;overflow:hidden;border-radius:999px;background:#e2e8f0}.oa-loading-bar i{display:block;width:42%;height:100%;border-radius:999px;background:linear-gradient(90deg,#60a5fa,#2563eb,#818cf8);animation:oaLoadingBar 1.25s ease-in-out infinite}.oa-upload-drop.disabled{opacity:.62;cursor:not-allowed;pointer-events:none}@keyframes oaLoadingBar{0%{transform:translate(-110%)}to{transform:translate(250%)}}@media (max-width:900px){.oa-loading-mask{align-items:center;padding:18px}.oa-loading-dialog{border-radius:24px;padding:30px 22px 26px}}.system-info-page .flow-top{margin-bottom:18px}.system-info-card{min-height:620px;overflow:visible}.system-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}.system-tabs button{border:0;border-radius:14px;padding:12px 18px;font-weight:800;color:#334155;background:#f1f5f9;cursor:pointer}.system-tabs button.active{background:#2563eb;color:#fff;box-shadow:0 10px 24px #2563eb40}.system-loading{padding:28px;border-radius:18px;background:#f8fafc;color:#64748b;font-weight:800}.system-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}.system-summary>div{border-radius:20px;padding:18px 20px;background:linear-gradient(135deg,#f8fafc,#eef2ff);border:1px solid rgba(226,232,240,.9)}.system-summary span{display:block;color:#64748b;font-size:13px;font-weight:800}.system-summary b{display:block;margin-top:6px;font-size:28px;color:#0f172a}.bad-text{color:#dc2626!important}.system-health-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;max-height:none}.system-health-card{min-height:132px;border-radius:20px;padding:18px;background:#fff;border:1px solid rgba(226,232,240,.95);box-shadow:0 14px 36px #0f172a0f}.system-health-card.bad{background:linear-gradient(135deg,#fff,#fff7ed);border-color:#fb923c73}.system-health-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.system-health-top span{color:#64748b;font-size:12px;font-weight:800}.system-health-top em{font-style:normal;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:900}.system-health-top em.ok,.config-state.ok{color:#16a34a;background:#ecfdf5}.system-health-top em.bad,.config-state.bad{color:#dc2626;background:#fef2f2}.system-health-card h3{margin:0 0 8px;font-size:17px;color:#0f172a}.system-health-card p{margin:0;color:#475569;line-height:1.6;word-break:break-word}.system-health-card small{display:block;margin-top:10px;color:#94a3b8}.system-config-list{display:flex;flex-direction:column;gap:10px}.system-config-row{display:grid;grid-template-columns:minmax(240px,1.2fr) 100px minmax(160px,1fr);align-items:center;gap:14px;padding:16px 18px;border-radius:18px;background:#f8fafc;border:1px solid rgba(226,232,240,.9)}.system-config-row.bad{background:#fff7ed;border-color:#fb923c59}.config-name{font-weight:900;color:#0f172a;word-break:break-word;min-width:0}.config-state{justify-self:start;border-radius:999px;padding:5px 10px;font-weight:900;font-size:12px;white-space:nowrap}.config-value{color:#475569;min-width:0;word-break:break-word}.system-alert-list{display:flex;flex-direction:column;gap:12px}.system-alert-row{display:flex;align-items:center;justify-content:space-between;gap:18px;border-radius:20px;padding:18px;background:#f8fafc;border:1px solid rgba(226,232,240,.9)}.system-alert-row.high{background:#fff7ed;border-color:#fb923c59}.system-alert-row h3{margin:0 0 6px;color:#0f172a}.system-alert-row p{margin:0;color:#64748b;line-height:1.6}.system-log-wrap{overflow:auto;max-height:calc(100vh - 260px);border-radius:18px;border:1px solid rgba(226,232,240,.9)}.system-log-table{min-width:980px}.system-log-table td{vertical-align:top}@media (max-width:900px){.system-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.system-summary>div{padding:14px}.system-summary b{font-size:22px}.system-health-grid{grid-template-columns:1fr}.system-config-row{grid-template-columns:1fr;gap:8px}.system-alert-row{align-items:flex-start;flex-direction:column}.system-alert-row button{width:100%}}.audit-card-list{display:flex;flex-direction:column;gap:12px;max-height:calc(100vh - 260px);overflow:auto;padding-right:6px}.audit-card-item{display:flex;gap:14px;padding:16px;border-radius:20px;background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid rgba(226,232,240,.95);box-shadow:0 12px 30px #0f172a0d}.audit-card-icon{width:42px;height:42px;border-radius:16px;display:grid;place-items:center;flex:0 0 auto;color:#2563eb;background:#eff6ff;font-weight:900}.audit-card-main{flex:1;min-width:0}.audit-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}.audit-card-head h3{margin:0;font-size:16px;color:#0f172a}.audit-card-head span{color:#64748b;font-size:13px;white-space:nowrap}.audit-card-main p{margin:0;color:#475569;line-height:1.7;word-break:break-word}.audit-card-meta{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}.audit-card-meta b,.audit-card-meta em{font-style:normal;font-size:12px;font-weight:800;padding:5px 9px;border-radius:999px;background:#f1f5f9;color:#475569}.audit-card-meta em{color:#16a34a;background:#ecfdf5}@media (max-width:900px){.audit-card-head{align-items:flex-start;flex-direction:column}}.home-log-board{display:flex;flex-direction:column;gap:12px;max-height:calc(100vh - 260px);overflow:auto;padding-right:6px}.home-log-item{display:flex;gap:14px;padding:16px 18px;border-radius:22px;background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid rgba(226,232,240,.92);box-shadow:0 14px 34px #0f172a0f}.home-log-dot{width:44px;height:44px;flex:0 0 auto;border-radius:16px;display:grid;place-items:center;font-weight:900;color:#2563eb;background:#eff6ff}.home-log-item.approval .home-log-dot{color:#7c3aed;background:#f5f3ff}.home-log-item.schedule .home-log-dot{color:#2563eb;background:#eff6ff}.home-log-item.venue .home-log-dot{color:#059669;background:#ecfdf5}.home-log-item.system .home-log-dot{color:#ea580c;background:#fff7ed}.home-log-content{flex:1;min-width:0}.home-log-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}.home-log-head strong{color:#0f172a;font-size:16px}.home-log-head span{color:#64748b;font-size:13px;white-space:nowrap}.home-log-content p{margin:0;color:#475569;line-height:1.7;word-break:break-word}.home-log-meta{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px}.home-log-meta em,.home-log-meta b{font-style:normal;font-size:12px;font-weight:800;padding:5px 9px;border-radius:999px;background:#f1f5f9;color:#475569}.home-log-meta b{color:#16a34a;background:#ecfdf5}@media (max-width:900px){.home-log-head{flex-direction:column;align-items:flex-start}}.system-log-section{display:flex;flex-direction:column;gap:12px}.system-log-filter{display:grid;grid-template-columns:150px 130px 150px 150px minmax(220px,1fr) auto;gap:10px;align-items:center;padding:14px;border-radius:20px;background:#f8fafc;border:1px solid rgba(226,232,240,.9)}.system-log-filter select,.system-log-filter input{height:42px;border:1px solid rgba(203,213,225,.95);border-radius:14px;padding:0 12px;background:#fff;color:#0f172a;outline:none}.system-log-filter input:focus,.system-log-filter select:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}.system-log-count{color:#64748b;font-weight:800;font-size:13px;padding:0 4px}.home-log-item.people .home-log-dot{color:#0891b2;background:#ecfeff}@media (max-width:1100px){.system-log-filter{grid-template-columns:1fr 1fr}}@media (max-width:700px){.system-log-filter{grid-template-columns:1fr}}.oa-ai-entry{position:fixed;z-index:1200;right:22px;top:22px;width:46px;height:46px;border-radius:16px;border:1px solid rgba(37,99,235,.22);background:linear-gradient(135deg,#0f172a,#2563eb);color:#fff;font-weight:900;box-shadow:0 18px 45px #0f172a42;cursor:pointer}.oa-ai-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1300;background:#0f172a2e;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:flex;justify-content:flex-end}.oa-ai-drawer{width:min(460px,calc(100vw - 24px));height:100vh;background:#f8fafcf5;border-left:1px solid rgba(148,163,184,.35);box-shadow:-24px 0 70px #0f172a38;display:flex;flex-direction:column}.oa-ai-head{padding:18px 18px 14px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(148,163,184,.25)}.oa-ai-head strong{display:block;font-size:18px;color:#0f172a}.oa-ai-head span{display:block;margin-top:4px;color:#64748b;font-size:12px}.oa-ai-head button{border:0;background:#e2e8f0;width:34px;height:34px;border-radius:12px;font-size:22px;cursor:pointer}.oa-ai-body{flex:1;overflow:auto;padding:18px}.oa-ai-empty{padding:16px;border:1px dashed rgba(37,99,235,.28);border-radius:18px;background:#eff6ff;color:#1e293b}.oa-ai-empty p{margin:8px 0 0;color:#475569}.oa-ai-msg{display:flex;margin:12px 0}.oa-ai-msg.user{justify-content:flex-end}.oa-ai-msg.assistant{justify-content:flex-start}.oa-ai-bubble{max-width:86%;white-space:pre-wrap;line-height:1.65;padding:12px 14px;border-radius:16px;font-size:14px}.oa-ai-msg.user .oa-ai-bubble{background:#2563eb;color:#fff;border-bottom-right-radius:5px}.oa-ai-msg.assistant .oa-ai-bubble{background:#fff;color:#0f172a;border:1px solid rgba(148,163,184,.25);border-bottom-left-radius:5px}.oa-ai-foot{padding:14px;border-top:1px solid rgba(148,163,184,.25);background:#ffffffdb}.oa-ai-foot textarea{width:100%;min-height:78px;max-height:150px;resize:vertical;border:1px solid rgba(148,163,184,.45);border-radius:16px;padding:12px;outline:none;font-size:14px;box-sizing:border-box}.oa-ai-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:10px}.oa-ai-actions button{border:1px solid rgba(148,163,184,.35);background:#fff;border-radius:12px;padding:9px 12px;cursor:pointer}.oa-ai-actions button.primary{background:#2563eb;color:#fff;border-color:#2563eb}.oa-ai-actions button:disabled{opacity:.5;cursor:not-allowed}@media (max-width:900px){.oa-ai-entry{top:18px;right:18px;width:42px;height:42px;border-radius:15px}.oa-ai-mask{align-items:flex-end;justify-content:center}.oa-ai-drawer{width:100vw;height:82vh;border-radius:24px 24px 0 0;border-left:0;border-top:1px solid rgba(148,163,184,.35)}}.oa-ai-entry{display:none!important}.side-brand-with-ai{display:flex!important;align-items:center;justify-content:space-between;gap:10px}.side-brand-main{display:flex;align-items:center;gap:10px;min-width:0}.side-ai-btn{width:42px;height:42px;flex:0 0 42px;border-radius:14px;border:1px solid rgba(96,165,250,.45);background:linear-gradient(135deg,#0f172aeb,#2563ebeb);color:#fff;font-weight:900;letter-spacing:.5px;box-shadow:0 14px 34px #2563eb47;cursor:pointer}.side-ai-btn:hover{transform:translateY(-1px);box-shadow:0 18px 42px #2563eb61}.m-data-hero-ai{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px}.m-hero-main{min-width:0}.m-hero-main h1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-hero-right{display:flex;align-items:center;gap:10px}.m-ai-btn{width:58px;height:58px;border-radius:20px;border:1px solid rgba(96,165,250,.35);background:linear-gradient(135deg,#0f172a,#1d4ed8);color:#fff;font-size:18px;font-weight:900;box-shadow:0 16px 36px #2563eb47;cursor:pointer}.oa-ai-mask{animation:oaAiFadeIn .18s ease-out both}.oa-ai-drawer{animation:oaAiSlideIn .22s cubic-bezier(.2,.8,.2,1) both;max-width:460px}@keyframes oaAiFadeIn{0%{opacity:0}to{opacity:1}}@keyframes oaAiSlideIn{0%{transform:translate(28px);opacity:.2}to{transform:translate(0);opacity:1}}@media (min-width:901px){.oa-ai-drawer{width:460px!important;height:100vh!important}.oa-ai-body{min-height:0}}@media (max-width:900px){.oa-ai-mask{align-items:flex-end!important}.oa-ai-drawer{width:100vw!important;max-width:none!important;height:82vh!important;border-radius:26px 26px 0 0!important;animation:oaAiUpIn .24s cubic-bezier(.2,.8,.2,1) both}.oa-ai-foot{padding-bottom:calc(14px + env(safe-area-inset-bottom))}}@keyframes oaAiUpIn{0%{transform:translateY(40px);opacity:.35}to{transform:translateY(0);opacity:1}}.oa-ai-drawer{position:relative;overflow:hidden}.oa-ai-body{flex:1 1 auto!important;min-height:0!important;padding-bottom:18px!important}.oa-ai-foot{flex:0 0 auto!important;width:100%!important;box-sizing:border-box!important}.oa-ai-input-wrap{width:100%;box-sizing:border-box}.oa-ai-input-wrap textarea,.oa-ai-foot textarea{display:block;width:100%!important;min-width:0!important;box-sizing:border-box!important}.oa-ai-actions{width:100%;box-sizing:border-box;display:flex!important;flex-wrap:wrap}@media (min-width:901px){.oa-ai-mask{justify-content:flex-end!important;align-items:stretch!important}.oa-ai-drawer{width:460px!important;max-width:460px!important;height:100vh!important}}@media (max-width:900px){.oa-ai-drawer{width:100vw!important;max-width:none!important;height:82vh!important}.oa-ai-foot{padding:14px 14px calc(88px + env(safe-area-inset-bottom))!important}.oa-ai-actions button{flex:1 1 auto}}.oa-ai-mask{z-index:99999!important}.oa-ai-drawer{display:flex!important;flex-direction:column!important;overflow:hidden!important}.oa-ai-head{flex:0 0 auto!important}.oa-ai-body{flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;padding:18px!important}.oa-ai-foot{position:relative!important;flex:0 0 auto!important;width:100%!important;box-sizing:border-box!important;padding:14px!important;background:#fff!important;border-top:1px solid rgba(148,163,184,.28)!important;z-index:2!important}.oa-ai-foot textarea{width:100%!important;min-height:88px!important;max-height:140px!important;box-sizing:border-box!important;display:block!important;pointer-events:auto!important}.oa-ai-actions{margin-top:10px!important;display:flex!important;gap:8px!important;justify-content:flex-end!important;flex-wrap:wrap!important}.oa-ai-bubble pre{margin:8px 0;padding:10px;border-radius:10px;background:#0f172a;color:#e5e7eb;overflow:auto}.oa-ai-bubble code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;background:#0f172a14;padding:2px 5px;border-radius:6px}.oa-ai-bubble pre code{background:transparent;padding:0}.oa-ai-bubble ul{margin:6px 0 6px 18px;padding:0}@media (min-width:901px){.oa-ai-drawer{width:460px!important;max-width:460px!important;height:100vh!important}}@media (max-width:900px){.oa-ai-mask{align-items:flex-end!important}.oa-ai-drawer{width:100vw!important;max-width:none!important;height:82dvh!important;border-radius:26px 26px 0 0!important}.oa-ai-foot{padding:12px 12px calc(12px + env(safe-area-inset-bottom))!important}.oa-ai-actions button{flex:1 1 auto!important}}.side-ai-btn,.m-ai-btn{position:relative!important;isolation:isolate;overflow:hidden;background:linear-gradient(135deg,#0f172a,#1e3a8a)!important}.side-ai-btn:before,.m-ai-btn:before{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;z-index:-2;background:conic-gradient(from 0deg,#22d3ee,#2563eb,#8b5cf6,#ec4899,#f97316,#22c55e,#22d3ee);animation:oaAiBorderSpin 2.4s linear infinite}.side-ai-btn:after,.m-ai-btn:after{content:"";position:absolute;top:2px;right:2px;bottom:2px;left:2px;z-index:-1;border-radius:12px;background:linear-gradient(135deg,#0f172a,#1d4ed8)}.m-ai-btn:after{border-radius:18px}@keyframes oaAiBorderSpin{to{transform:rotate(360deg)}}.oa-ai-drawer{background:radial-gradient(circle at 20% 0%,rgba(59,130,246,.12),transparent 28%),radial-gradient(circle at 90% 20%,rgba(168,85,247,.1),transparent 30%),#f8fafcf5!important;border:1px solid rgba(226,232,240,.8)}.oa-ai-head{background:#ffffffb8!important;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.oa-ai-bubble{box-shadow:0 10px 30px #0f172a0f}.oa-ai-msg.assistant .oa-ai-bubble{background:linear-gradient(180deg,#fff,#f8fafc)!important}.oa-ai-thinking{display:inline-flex;align-items:center;gap:7px;margin:12px 0;padding:12px 14px;border-radius:16px;background:#ffffffdb;border:1px solid rgba(148,163,184,.28);color:#475569;box-shadow:0 10px 30px #0f172a0f}.oa-ai-thinking span{width:7px;height:7px;border-radius:999px;background:#2563eb;animation:oaAiDot 1s ease-in-out infinite}.oa-ai-thinking span:nth-child(2){animation-delay:.15s}.oa-ai-thinking span:nth-child(3){animation-delay:.3s}.oa-ai-thinking b{font-size:13px;font-weight:700}@keyframes oaAiDot{0%,80%,to{transform:translateY(0);opacity:.35}40%{transform:translateY(-5px);opacity:1}}.oa-ai-foot{background:#ffffffdb!important;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.oa-ai-foot textarea{background:#ffffffeb!important;border:1px solid rgba(148,163,184,.38)!important;box-shadow:inset 0 1px #fffc,0 12px 28px #0f172a0f}.oa-ai-foot textarea:focus{border-color:#2563ebb8!important;box-shadow:0 0 0 4px #2563eb1f,0 14px 34px #0f172a14}.oa-ai-actions button{background:#ffffffdb!important;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.oa-ai-actions button.primary{background:linear-gradient(135deg,#2563eb,#1d4ed8)!important}.oa-ai-table-wrap{width:100%;overflow-x:auto;margin:8px 0;border-radius:12px;border:1px solid rgba(148,163,184,.28);background:#fff}.oa-ai-md-table{width:100%;border-collapse:collapse;font-size:13px;line-height:1.5}.oa-ai-md-table th{background:#f1f5f9;color:#0f172a;font-weight:800;text-align:left;padding:8px 10px;white-space:nowrap;border-bottom:1px solid rgba(148,163,184,.28)}.oa-ai-md-table td{padding:8px 10px;color:#1e293b;border-bottom:1px solid rgba(226,232,240,.8);white-space:nowrap}.oa-ai-md-table tr:last-child td{border-bottom:0}.oa-ai-bubble h1,.oa-ai-bubble h2,.oa-ai-bubble h3{margin:8px 0 6px;line-height:1.35}.oa-ai-bubble h1{font-size:18px}.oa-ai-bubble h2{font-size:16px}.oa-ai-bubble h3{font-size:15px}.oa-ai-bubble em{color:#475569;font-style:italic}.oa-ai-bubble blockquote{margin:8px 0;padding:8px 10px;border-left:4px solid #2563eb;background:#eff6ff;color:#334155;border-radius:8px}.m-hero-row{display:grid!important;grid-template-columns:minmax(0,1fr) 64px;gap:12px;align-items:stretch;margin-bottom:18px}.m-hero-row .m-data-hero{margin-bottom:0!important;min-width:0}.m-data-hero-ai{grid-template-columns:minmax(0,1fr) auto!important}.m-hero-row .m-ai-btn{align-self:stretch;width:64px!important;height:auto!important;min-height:76px;border-radius:24px!important;font-size:20px}.m-avatar{overflow:hidden}.m-avatar img{width:100%;height:100%;display:block;object-fit:cover;border-radius:inherit}.m-avatar span{display:flex;width:100%;height:100%;align-items:center;justify-content:center}@media (max-width:420px){.m-hero-row{grid-template-columns:minmax(0,1fr) 58px;gap:10px}.m-hero-row .m-ai-btn{width:58px!important;min-height:70px;border-radius:22px!important}}.m-avatar{background:linear-gradient(135deg,#2563eb,#0f172a)!important;color:#fff!important;box-shadow:0 16px 34px #2563eb38!important}.m-avatar span{color:#fff!important;font-weight:900!important;text-shadow:0 1px 2px rgba(0,0,0,.18)}.m-hero-row:has(.m-data-hero-ai:last-child){grid-template-columns:1fr!important}.m-hero-row:not(:has(.m-ai-btn)){grid-template-columns:1fr!important}.m-hero-row:not(:has(.m-ai-btn)) .m-data-hero{width:100%!important}.data-metric-grid.student-metric-grid{grid-template-columns:repeat(4,minmax(0,1fr))}@media (min-width: 901px){.data-metric-grid.student-metric-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.data-metric-grid.student-metric-grid .primary{grid-column:auto!important;grid-row:auto!important}.data-metric-grid.student-metric-grid .data-metric-card{min-width:0}}@media (min-width: 901px){.data-metric-grid.student-metric-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;width:100%!important}.data-metric-grid.student-metric-grid>.data-metric-card{width:100%!important;min-width:0!important;grid-column:auto!important;grid-row:auto!important}.data-metric-grid.student-metric-grid>.data-metric-card.primary{grid-column:auto!important;grid-row:auto!important}}.monitor-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;background:radial-gradient(circle at 90% 20%,rgba(37,99,235,.16),transparent 28%),linear-gradient(135deg,#fff,#f4f8ff)}.monitor-hero h2{margin:0 0 8px}.monitor-hero p{margin:0;color:#64748b;font-weight:700}.monitor-switch{display:flex;align-items:center;gap:12px;cursor:pointer;-webkit-user-select:none;user-select:none}.monitor-switch span{width:64px;height:34px;border-radius:999px;background:#cbd5e1;position:relative;box-shadow:inset 0 2px 8px #0f172a2e;transition:.2s ease}.monitor-switch span:after{content:"";position:absolute;width:28px;height:28px;left:3px;top:3px;border-radius:999px;background:#fff;box-shadow:0 8px 18px #0f172a38;transition:.2s ease}.monitor-switch input:checked+span{background:linear-gradient(135deg,#2563eb,#1d4ed8)}.monitor-switch input:checked+span:after{transform:translate(30px)}.monitor-upload{display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.monitor-checks{display:flex;gap:10px;flex-wrap:wrap}.monitor-checks label{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;background:#eef4ff;color:#17335f;font-weight:800}.monitor-save-bar{margin-top:18px;display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}.monitor-save-bar label{display:flex;align-items:center;gap:8px;color:#475569;font-weight:800}.monitor-save-bar input{width:80px}.monitor-room-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:18px}.monitor-room-tabs button{border:1px solid rgba(148,163,184,.28);border-radius:22px;padding:16px 18px;text-align:left;background:linear-gradient(135deg,#fff,#f8fbff);cursor:pointer;box-shadow:0 12px 28px #0f172a0f}.monitor-room-tabs button.active{border-color:#2563eb8c;box-shadow:0 18px 40px #2563eb29}.monitor-room-tabs strong,.monitor-room-tabs span{display:block}.monitor-room-tabs span{margin-top:5px;color:#64748b;font-weight:800}.monitor-live-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.monitor-live-card{border:1px solid rgba(148,163,184,.22);border-radius:28px;padding:16px;background:radial-gradient(circle at 90% 12%,rgba(37,99,235,.1),transparent 26%),linear-gradient(135deg,#fff,#f8fbff);box-shadow:0 18px 42px #0f172a17}.monitor-live-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.monitor-live-head strong,.monitor-live-head span{display:block}.monitor-live-head span{margin-top:3px;color:#64748b;font-weight:700}.monitor-live-head em{font-style:normal;padding:6px 10px;border-radius:999px;background:#e2e8f0;color:#334155;font-weight:900;font-size:12px}.monitor-live-head em.live{background:#dcfce7;color:#166534}.monitor-live-head em.queue{background:#fef3c7;color:#92400e}.monitor-live-head em.snapshot{background:#dbeafe;color:#1d4ed8}.monitor-live-head em.loading{background:#ede9fe;color:#6d28d9}.monitor-video-box{aspect-ratio:16/9;border-radius:22px;overflow:hidden;background:#020617;display:flex;align-items:center;justify-content:center;position:relative}.monitor-video-box video,.monitor-video-box img{width:100%;height:100%;object-fit:contain;background:#020617}.monitor-placeholder{text-align:center;color:#cbd5e1}.monitor-placeholder b{display:block;font-size:20px;color:#fff}.monitor-placeholder span{display:block;margin-top:8px;font-weight:700}.monitor-live-actions{margin-top:14px;display:grid;grid-template-columns:1fr 1fr;gap:10px}@media (max-width:1100px){.monitor-live-grid{grid-template-columns:1fr}}@media (max-width:900px){.monitor-hero{display:block}.monitor-switch{margin-top:16px}}.monitor-switch-card{min-height:auto!important;padding:18px 22px!important;display:flex;align-items:center;justify-content:space-between;gap:18px}.monitor-switch-card p{margin:0!important;color:#64748b;font-size:13px}.monitor-switch{display:flex;align-items:center;gap:10px;white-space:nowrap}.monitor-switch input{display:none}.monitor-switch span{width:48px;height:26px;border-radius:999px;background:#cbd5e1;position:relative;transition:.18s ease}.monitor-switch span:after{content:"";width:20px;height:20px;border-radius:999px;background:#fff;position:absolute;top:3px;left:3px;box-shadow:0 2px 8px #0f172a2e;transition:.18s ease}.monitor-switch input:checked+span{background:#2563eb}.monitor-switch input:checked+span:after{left:25px}.monitor-switch b{font-size:13px;color:#334155}.monitor-upload input{display:none}.monitor-page .content-card:has(h2),.classroom-page .content-card:has(h2){min-height:unset!important}.monitor-page .content-card:has(h2:contains("CSV")),.classroom-page .content-card:has(h2:contains("CSV")){padding-top:22px!important;padding-bottom:22px!important}.monitor-page main>.content-card:nth-of-type(2),.classroom-page main>.content-card:nth-of-type(2){min-height:112px!important;padding:22px 28px!important}.monitor-switch-card{min-height:86px!important;padding:18px 28px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:20px!important}.monitor-switch-card h2{margin:0 0 4px!important;font-size:18px!important}.monitor-switch-card p{margin:0!important;font-size:13px!important}.monitor-switch{display:flex!important;align-items:center!important;gap:10px!important;white-space:nowrap!important}.monitor-switch input{display:none!important}.monitor-switch span{width:46px!important;height:26px!important;border-radius:999px!important;background:#cbd5e1!important;position:relative!important;box-shadow:inset 0 1px 3px #0f172a33!important}.monitor-switch span:after{content:""!important;position:absolute!important;width:20px!important;height:20px!important;border-radius:999px!important;left:3px!important;top:3px!important;background:#fff!important;box-shadow:0 4px 10px #0f172a40!important;transition:.18s ease!important}.monitor-switch input:checked+span{background:#2563eb!important}.monitor-switch input:checked+span:after{transform:translate(20px)!important}.monitor-switch b{font-size:13px!important;color:#0f172a!important}.monitor-busy-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99999;display:flex;align-items:center;justify-content:center;background:#0f172a61;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.monitor-busy-box{width:min(360px,calc(100vw - 40px));padding:28px 26px;border-radius:26px;background:#fffffff0;box-shadow:0 30px 90px #0f172a47;border:1px solid rgba(255,255,255,.72);text-align:center}.monitor-busy-box span{display:block;width:42px;height:42px;margin:0 auto 16px;border-radius:999px;border:4px solid rgba(37,99,235,.16);border-top-color:#2563eb;animation:monitorSpin .8s linear infinite}.monitor-busy-box strong{display:block;font-size:17px;color:#0f172a;margin-bottom:8px}.monitor-busy-box p{margin:0;color:#64748b;font-size:13px}@keyframes monitorSpin{to{transform:rotate(360deg)}}.monitor-room-actions{display:flex;gap:10px;align-items:center;margin:16px 0;flex-wrap:wrap}.monitor-room-tabs button:disabled,.monitor-room-actions button:disabled{opacity:.55;cursor:not-allowed}.oa-page-loading{min-height:70vh;display:flex;align-items:center;justify-content:center;padding:24px}.mobile-loading-page{min-height:100vh;background:linear-gradient(180deg,#eef4ff,#f8fafc)}.oa-page-loading-box{width:min(420px,92vw);padding:28px 26px;border-radius:28px;background:#ffffffeb;border:1px solid rgba(148,163,184,.28);box-shadow:0 26px 80px #0f172a24;text-align:center;color:#0f172a}.oa-page-loading-box span{width:46px;height:46px;display:block;margin:0 auto 16px;border-radius:999px;border:4px solid rgba(37,99,235,.16);border-top-color:#2563eb;animation:oaSpin .85s linear infinite}.oa-page-loading-box strong{display:block;font-size:18px;font-weight:900;margin-bottom:8px}.oa-page-loading-box p{margin:0;color:#64748b;font-weight:700}.monitor-busy-box .small-btn{margin-top:14px}@keyframes oaSpin{to{transform:rotate(360deg)}}.profile-v097{padding-bottom:96px}.profile-head-v097{align-items:center}.profile-avatar-img{width:72px;height:72px;border-radius:24px;overflow:hidden;display:grid;place-items:center;background:linear-gradient(135deg,#1d4ed8,#0f766e);color:#fff;font-size:28px;font-weight:800;box-shadow:0 18px 40px #142e642e;flex:0 0 auto}.profile-avatar-img img{width:100%;height:100%;object-fit:cover}.profile-dialog-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:grid;place-items:center;padding:22px;background:#0f172a7a;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.profile-dialog{width:min(420px,100%);padding:24px;border-radius:24px;background:#fffffff5;box-shadow:0 30px 90px #0f172a47}.profile-dialog h3{margin:0;font-size:22px;color:#101828}.profile-dialog p{margin:8px 0 18px;color:#667085;font-size:14px}.profile-dialog label{display:block;margin-top:14px;color:#344054;font-weight:700;font-size:13px}.profile-dialog input{width:100%;margin-top:8px;border:1px solid #d0d5dd;border-radius:14px;padding:14px;outline:none;font-size:15px;background:#f8fafc}.profile-dialog input:focus{border-color:#2563eb;background:#fff;box-shadow:0 0 0 4px #2563eb1a}.code-row{display:grid;grid-template-columns:1fr 116px;gap:10px}.code-row button,.dialog-actions button{border:0;border-radius:14px;padding:0 14px;font-weight:800}.code-row button{margin-top:8px;background:#eaf1ff;color:#1d4ed8}.code-row button:disabled,.dialog-actions button:disabled{opacity:.55;cursor:not-allowed}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.dialog-actions .plain{height:44px;background:#f2f4f7;color:#344054}.dialog-actions .primary{height:44px;background:linear-gradient(135deg,#17498f,#2563eb);color:#fff;box-shadow:0 14px 30px #2563eb38}.dialog-error{margin:14px 0 0!important;color:#b42318!important}.dialog-ok{margin:14px 0 0!important;color:#027a48!important}@media (max-width: 640px){.profile-dialog{border-radius:22px;padding:22px}.code-row{grid-template-columns:1fr 104px}}.wechat-manage-page .content-card,.wechat-manage-page .system-info-card,.wechat-manage-page .wechat-manage-card{min-height:unset!important}.wechat-manage-page .wechat-manage-main,.wechat-manage-page .flow-main{gap:16px!important}.wechat-manage-page .wechat-tabs-card,.wechat-manage-page .wechat-empty-panel{min-height:120px!important;padding-top:22px!important;padding-bottom:22px!important}.m-data-stats.student{grid-template-columns:repeat(2,minmax(0,1fr))!important}.m-data-stats.student button{width:100%!important}.wechat-manage-page .wechat-tabs-shell,.wechat-manage-page .wechat-tabs-card,.wechat-manage-page .wechat-manage-tabs,.wechat-manage-page .wechat-manage-panel:empty{min-height:0!important;height:auto!important;padding-top:14px!important;padding-bottom:14px!important}.wechat-manage-page .content-card:first-of-type{min-height:0!important;height:auto!important;padding-top:18px!important;padding-bottom:18px!important}.wechat-manage-page>.flow-main>.content-card:first-of-type,.wechat-manage-page .wechat-main-card:first-of-type,.wechat-manage-page .wechat-panel-shell:first-of-type,.wechat-manage-page .wechat-card:first-of-type{min-height:0!important;height:auto!important;padding:20px!important;margin-bottom:16px!important}.wechat-manage-page .wechat-tabs,.wechat-manage-page .wechat-tabbar,.wechat-manage-page .wechat-manage-tabs{min-height:0!important;height:auto!important;padding:0!important;margin:0!important}.wechat-manage-page .wechat-tabs+*,.wechat-manage-page .wechat-tabbar+*,.wechat-manage-page .wechat-manage-tabs+*{margin-top:18px!important}@media (max-width: 900px){html,body,#app{height:auto!important;min-height:100%!important;overflow-x:hidden!important;overflow-y:auto!important;touch-action:pan-y!important;-webkit-overflow-scrolling:touch!important}body{position:relative!important}.mobile-dash,.mobile-data-cabin,.profile-mobile-page,.oa-work,.flow-main,.wechat-bind-page{height:auto!important;min-height:100vh!important;overflow:visible!important;touch-action:pan-y!important;-webkit-overflow-scrolling:touch!important}.mobile-bottom-nav,.mobile-bottom-nav *{touch-action:manipulation!important}}html,body,#app{touch-action:pan-y!important;overscroll-behavior-y:auto!important}body{overflow-y:auto!important;-webkit-overflow-scrolling:touch}button,a,input,select,textarea{touch-action:manipulation}.mobile-bottom-nav{touch-action:manipulation!important}
