:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif;color:#1c2230;background:#f3f5f8}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select{font:inherit}button,a{cursor:pointer}.login-page{min-height:100vh;display:grid;grid-template-columns:1.2fr .8fr;gap:10vw;align-items:center;max-width:1120px;margin:auto;padding:40px}.login-page section{color:#fff;padding:54px;border-radius:20px;background:linear-gradient(135deg,#1f232c,#2f6fb3)}.login-page section p,.login-page section span{color:#cbd9e8}.login-page h1{font-size:42px;margin:8px 0}.login-page h2{font-weight:400}.login-page form,.modal{display:grid;gap:14px;padding:30px;background:#fff;border:1px solid #e4e8ee;border-radius:10px;box-shadow:0 6px 22px #1c223014}.login-page label,.modal label{display:grid;gap:6px;font-size:13px;color:#526d86}.login-page input,.modal input,.drawer input,.drawer select,.toolbar input{padding:9px;border:1px solid #dbe2ea;border-radius:6px;background:#fff}.login-page button,.primary,.panel-head>button{border:0;border-radius:6px;padding:10px 14px;background:#2f6fb3;color:#fff;font-weight:600}.login-page a{color:#2f6fb3;text-align:center;font-size:13px}.login-page small{color:#bd3030}.admin-shell{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100vh}.admin-shell>aside{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:20px 14px;background:#1f232c;color:#cdd0d6}.brand{display:flex;align-items:center;gap:10px;padding:0 6px 18px;color:#fff}.brand>span{display:grid;place-items:center;width:24px;height:24px;border-radius:5px;background:#fff;color:#2f6fb3;font-size:11px;font-weight:800}.brand small{display:block;color:#858c9a;font-size:10px;letter-spacing:.8px}.admin-shell>aside>p{padding:8px 10px;margin:0;color:#7a8090;font-size:11px;letter-spacing:1px}.admin-shell nav{display:grid;gap:2px}.admin-shell nav button{display:flex;align-items:center;gap:10px;border:0;border-radius:8px;padding:9px 11px;background:transparent;color:#cdd0d6;text-align:left}.admin-shell nav button:hover{background:#2a2f3a;color:#fff}.admin-shell nav button.active{background:#2f6fb3;color:#fff}.admin-shell nav i{width:18px;font-style:normal;text-align:center}.admin-shell>aside footer{display:grid;gap:8px;margin-top:auto;padding:12px;border-top:1px solid #343a46;font-size:12px}.admin-shell>aside footer a,.admin-shell>aside footer button{border:1px solid #3a4050;border-radius:6px;padding:7px;background:transparent;color:#cdd0d6;text-decoration:none;text-align:center}.admin-main{padding:24px 28px 40px;min-width:0}.admin-main>header{display:flex;justify-content:space-between;margin-bottom:20px;color:#737d8c;font-size:13px}.admin-main>header b{color:#1c2230}.admin-main>header a{color:#2f6fb3;text-decoration:none}.panel-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:14px}.panel-head em,.placeholder em,.drawer em{color:#2f6fb3;font-size:11px;font-style:normal;font-weight:700;letter-spacing:.12em}.panel-head h1,.placeholder h1{margin:2px 0;font-size:21px}.panel-head span{font-size:12px;color:#737d8c}.toolbar,.table-wrap{background:#fff;border:1px solid #e4e8ee;border-radius:10px;box-shadow:0 4px 15px #141e320a}.toolbar{display:flex;justify-content:space-between;align-items:end;gap:12px;padding:12px 14px;margin-bottom:12px;color:#737d8c;font-size:12px}.toolbar label{display:flex;align-items:center;gap:8px;color:#52708d}.toolbar input{width:min(320px,55vw)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:740px}th,td{padding:12px 14px;border-bottom:1px solid #e4e8ee;text-align:left;font-size:13px}th{background:#f8fafc;color:#52708d;font-size:12px}tbody tr{cursor:pointer}tbody tr:hover{background:#f4f9ff}td a{color:#2f6fb3;font-weight:600}mark{border-radius:12px;padding:3px 9px;background:#eef1f4;color:#8a97a4;font-size:12px}.ok{background:#e7f5ee;color:#1f8a5b}.rows{display:grid;gap:12px}.rows article{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding:16px;background:#fff;border:1px solid #e4e8ee;border-radius:10px;box-shadow:0 4px 15px #141e320a}.rows b{font-size:15px}.rows mark{margin-left:8px}.rows p{margin:7px 0;color:#526d86;white-space:pre-wrap}.rows small{color:#737d8c}.rows button{border:1px solid #dbe2ea;border-radius:6px;padding:7px 10px;background:#fff;color:#2f6fb3;white-space:nowrap}.modal textarea{width:100%;min-height:80px;padding:9px;border:1px solid #dbe2ea;border-radius:6px;resize:vertical}.modal.wide{width:min(720px,94vw)}.placeholder{padding:36px;background:#fff;border:1px solid #e4e8ee;border-radius:10px}.placeholder p{color:#737d8c}.overlay{position:fixed;inset:0;z-index:10;background:#12264057}.drawer{position:absolute;right:0;top:0;width:min(460px,94vw);height:100%;display:flex;flex-direction:column;background:#fff;box-shadow:-12px 0 34px #1428422e}.drawer header,.modal header{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;border-bottom:1px solid #e4e8ee}.drawer h2,.modal h2{margin:2px 0}.drawer header button,.modal header button{border:0;background:transparent;font-size:24px}.drawer main{overflow:auto;padding:20px 22px}.drawer label{display:grid;gap:6px;color:#526d86;font-size:12px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}.drawer h3{margin:24px 0 8px;font-size:14px}.permission{display:flex!important;grid-template-columns:none!important;align-items:flex-start;gap:10px;padding:11px 0;border-bottom:1px dashed #e4e8ee}.permission input{width:auto}.permission span{display:grid;gap:2px}.permission small{color:#737d8c}.drawer footer,.modal footer{display:flex;justify-content:flex-end;gap:10px;padding:14px 22px;border-top:1px solid #e4e8ee}.drawer footer button,.modal footer button{border:1px solid #dbe2ea;border-radius:6px;padding:8px 12px;background:#fff}.drawer footer button.primary,.modal footer button.primary{background:#2f6fb3;color:#fff;min-width:84px}.modal{position:absolute;top:15vh;left:50%;width:min(420px,92vw);transform:translate(-50%)}.user-ready{padding:50px;text-align:center}.user-ready button{padding:9px 14px}.front-shell{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100vh;background:#f3f5f8}.front-side{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:20px 14px;background:#1f232c;color:#cdd0d6}.front-brand{display:flex;align-items:center;gap:10px;border:0;background:transparent;padding:0 6px 18px;color:#fff;text-align:left}.front-brand>span{display:grid;place-items:center;width:24px;height:24px;border-radius:5px;background:#fff;color:#2f6fb3;font-size:11px;font-weight:800}.front-brand small{display:block;color:#858c9a;font-size:10px;letter-spacing:.8px}.front-side>p{padding:8px 10px;margin:0;color:#7a8090;font-size:11px;letter-spacing:1px}.front-side nav{display:grid;gap:2px}.front-side nav button{display:flex;gap:10px;align-items:center;border:0;border-radius:8px;padding:9px 11px;background:transparent;color:#cdd0d6;text-align:left}.front-side nav button:not(:disabled):hover{background:#2a2f3a;color:#fff}.front-side nav button.active{background:#2f6fb3;color:#fff}.front-side nav button:disabled{opacity:.42;cursor:not-allowed}.front-side nav i{width:18px;text-align:center;font-style:normal}.front-side footer{display:grid;gap:8px;margin-top:auto;padding:12px;border-top:1px solid #343a46;font-size:12px}.front-side footer button{border:1px solid #3a4050;border-radius:6px;padding:7px;background:transparent;color:#cdd0d6}.front-main{min-width:0;padding:24px 28px 40px}.front-main>header{display:flex;align-items:center;justify-content:space-between;min-height:35px;margin-bottom:20px;color:#737d8c;font-size:13px}.front-main>header b{color:#1c2230}.front-main>header span{margin:0 8px;color:#aab0b8}.front-main>header button,.project-workspace .panel-head>button{border:1px solid #d6dae0;border-radius:7px;padding:5px 12px;background:#fff;color:#4a5460;font-size:12px}.catalog-content{min-width:0}.catalog-search{display:grid;gap:6px;max-width:300px;margin:0 0 20px;color:#52708d;font-size:12px}.catalog-search input{width:100%;padding:9px;border:1px solid #dbe2ea;border-radius:6px;background:#fff}.front-side nav i{font-style:normal}.front-side nav i img{width:100%;height:100%;object-fit:contain}.front-side nav i span{display:grid;place-items:center;width:100%;height:100%}.tool-group{margin-bottom:28px}.tool-group h2{margin:0 0 12px;color:#1f6feb;font-size:15px}.tool-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}.tool-card{display:flex;gap:11px;align-items:flex-start;border:1px solid #ebeef2;border-radius:10px;padding:14px;background:#fff;color:#1c2230;text-align:left;transition:.15s}.tool-card:hover{transform:translateY(-2px);border-color:#cfd6df;box-shadow:0 10px 24px #141e3214}.tool-card>i{display:grid;place-items:center;width:38px;height:38px;flex:0 0 auto;border-radius:9px;background:#e3eeff;color:#1f5f9f;font-style:normal;font-size:18px}.tool-card b{font-size:13px}.tool-card p{margin:4px 0 0;color:#7a8290;font-size:11px;line-height:1.5}.front-error{padding:12px;border:1px solid #f0c9c9;border-radius:8px;background:#fff5f5;color:#b33}.front-empty{padding:32px;border:1px dashed #d6dae0;border-radius:10px;background:#fff;color:#7a8290;text-align:center}.project-workspace,.major-workspace{padding:24px;background:#fff;border:1px solid #e4e8ee;border-radius:10px}.project-workspace .panel-head,.major-workspace .panel-head{margin-bottom:16px}.major-setup{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:12px;align-items:end;padding:18px;background:#f8fafc;border:1px solid #e4e8ee;border-radius:10px}.major-setup label,.major-editor label{display:grid;gap:6px;color:#526d86;font-size:12px}.major-setup select,.major-editor textarea{width:100%;padding:9px;border:1px solid #dbe2ea;border-radius:6px;background:#fff}.major-setup button,.major-history button,.major-editor button{border:1px solid #dbe2ea;border-radius:6px;padding:8px 11px;background:#fff;color:#2f6fb3;white-space:nowrap}.major-history{display:grid;gap:10px;margin-top:18px}.major-history h2{margin:0;font-size:16px}.major-history article{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px;border:1px solid #e4e8ee;border-radius:8px}.major-history p,.major-editor p{margin:5px 0;color:#737d8c;font-size:12px}.major-editor>header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding-bottom:16px;border-bottom:1px solid #e4e8ee}.major-editor h2{margin:3px 0;font-size:20px}.major-editor em{color:#2f6fb3;font-size:11px;font-style:normal;font-weight:700}.major-summary{display:flex;justify-content:space-between;gap:12px;margin:16px 0;padding:12px;border-radius:8px;background:#eef5fb;color:#365b80}.major-summary b{color:#1f6feb}.major-group{margin-top:18px;border:1px solid #e4e8ee;border-radius:10px;overflow:hidden}.major-group h3{margin:0;padding:12px 15px;background:#f8fafc;font-size:14px}.major-group article{display:grid;grid-template-columns:minmax(260px,1.4fr) auto minmax(190px,1fr) minmax(190px,1fr);gap:12px;align-items:start;padding:14px;border-top:1px solid #e4e8ee}.major-group article p{margin:4px 0;color:#374b61;white-space:pre-wrap}.major-group article small{color:#737d8c}.major-answer{display:grid;gap:6px}.major-answer button.active{background:#e7f5ee;border-color:#9ed6c2;color:#176b4e}.major-answer button.danger{background:#fff1f3;border-color:#e4a4ae;color:#a61f35}.major-editor textarea{min-height:74px;resize:vertical}.project-list{display:grid;gap:12px}.project-row{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding:16px;background:#fff;border:1px solid #e4e8ee;border-radius:10px;box-shadow:0 4px 15px #141e320a}.project-row>div{min-width:0}.project-row p{margin:7px 0;color:#526d86;overflow-wrap:anywhere}.project-row small{color:#737d8c}.project-row small mark{margin-left:4px}.project-row button{border:1px solid #dbe2ea;border-radius:6px;padding:7px 10px;background:#fff;color:#2f6fb3;white-space:nowrap}.project-actions{display:flex;flex-wrap:wrap;gap:8px}.project-checklist-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.project-checklist-tags span{padding:3px 7px;border-radius:999px;background:#eef5fb;color:#2f6fb3;font-size:11px}.project-checklist-options{display:grid;gap:8px;margin:0;padding:12px;border:1px solid #e4e8ee;border-radius:8px}.project-checklist-options legend{padding:0 5px;color:#526d86;font-size:12px}.project-checklist-options label{display:flex!important;grid-template-columns:none!important;align-items:flex-start;gap:9px;padding:8px;border-radius:6px;background:#f8fafc}.project-checklist-options input{width:auto}.project-checklist-options span{display:grid;gap:3px}.project-checklist-options small{color:#737d8c}.project-checklist-options p{margin:0;color:#737d8c;font-size:12px}@media(max-width:820px){.front-shell{grid-template-columns:1fr}.front-side{position:static;height:auto;padding:14px}.front-side nav{display:flex;overflow:auto}.front-side nav button{white-space:nowrap}.front-side footer{display:flex;align-items:center;margin-top:12px}.front-side footer button{margin-left:auto}.front-main{padding:18px 14px}.front-main>header{align-items:flex-start;gap:12px;flex-direction:column}.catalog-search{max-width:none}}@media(max-width:820px){.admin-shell{grid-template-columns:1fr}.admin-shell>aside{position:static;height:auto}.admin-shell nav{display:flex;overflow:auto}.admin-shell nav button{white-space:nowrap}.admin-shell>aside footer{display:flex;margin-top:12px}.admin-shell>aside footer a,.admin-shell>aside footer button{flex:1}.admin-main{padding:18px 14px}.login-page{grid-template-columns:1fr;padding:20px}.login-page section{padding:32px}.fields{grid-template-columns:1fr}}.admin-shell>aside,.front-side{overflow-y:auto;overscroll-behavior:contain}.overlay{overflow-y:auto;padding:clamp(16px,5vh,48px) 0;display:block}.modal{position:relative;top:auto;max-height:calc(100dvh - 32px);overflow:auto;margin:0 auto}.drawer{position:fixed;height:100dvh}.panel-head{flex-wrap:wrap}.panel-head>div{min-width:0}.rows article>div:first-child{min-width:0;overflow-wrap:anywhere}.rows p,.rows small{overflow-wrap:anywhere}.tool-card b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tool-card p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;min-height:4.5em}.tool-card>i{font-family:inherit;line-height:1}.brand>img,.front-brand>img{width:24px;height:24px;flex:0 0 24px;object-fit:contain;border-radius:5px;background:#fff}.catalog-menu i,.front-side nav i,.admin-shell nav i{display:grid;place-items:center;flex:0 0 18px;line-height:1}.catalog-menu i img,.tool-card>i img{width:100%;height:100%;object-fit:contain}.catalog-menu i span,.tool-card>i span{display:grid;place-items:center;width:100%;height:100%}.stats-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.stats-summary article,.stats-grid>section{padding:16px;background:#fff;border:1px solid #e4e8ee;border-radius:10px;box-shadow:0 4px 15px #141e320a}.stats-summary span,.stats-summary small{display:block;color:#737d8c;font-size:12px}.stats-summary b{display:block;margin:5px 0;font-size:27px;color:#1f6feb}.stats-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:16px}.stats-grid>section:first-child{grid-row:span 2}.stats-grid h2{margin:0 0 14px;font-size:14px}.stats-days{height:174px;display:flex;align-items:end;gap:5px;overflow-x:auto;padding:0 0 22px}.stats-days article{display:grid;flex:0 0 30px;align-items:end;gap:4px;text-align:center}.stats-days b{display:block;width:100%;min-height:4px;border-radius:4px 4px 0 0;background:#2f6fb3}.stats-days span{font-size:9px;color:#737d8c;white-space:nowrap;transform:rotate(-45deg)}.stats-days small{display:none}.stats-ranking{display:grid;gap:8px;margin:0;padding:0;list-style:none}.stats-ranking li{display:flex;justify-content:space-between;gap:12px;padding-bottom:8px;border-bottom:1px dashed #e4e8ee;color:#526d86;font-size:12px}.stats-ranking li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stats-ranking li b{color:#1f6feb}.site-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-width:820px;padding:20px;background:#fff;border:1px solid #e4e8ee;border-radius:10px}.site-form label{display:grid;gap:6px;color:#526d86;font-size:12px}.site-form input{width:100%;padding:9px;border:1px solid #dbe2ea;border-radius:6px;background:#fff}.site-form label:nth-child(4),.site-form label:nth-child(5){grid-column:1/-1}.front-actions{display:flex;align-items:center;gap:8px}.announcement-button{position:relative}.announcement-button mark{position:absolute;top:-8px;right:-8px;display:grid;place-items:center;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:#bd3030;color:#fff;font-size:10px}.announcements-modal main{display:grid;gap:12px;padding:18px 22px;overflow:auto}.announcements-modal article{padding:0 0 12px;border-bottom:1px solid #e4e8ee}.announcements-modal article>div{display:flex;justify-content:space-between;gap:16px}.announcements-modal article small{color:#737d8c;font-size:12px;white-space:nowrap}.announcements-modal article p{margin:8px 0 0;color:#526d86;white-space:pre-wrap;overflow-wrap:anywhere}@media(max-width:820px){.panel-head{align-items:stretch}.panel-head>button{align-self:flex-start}.rows article{flex-direction:column;gap:12px}.rows article>div:last-child{display:flex;flex-wrap:wrap;gap:8px}.toolbar{align-items:stretch;flex-direction:column}.toolbar input{width:100%}.modal{width:min(720px,calc(100vw - 28px))}.drawer{width:min(460px,100vw)}.stats-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-grid{grid-template-columns:1fr}.stats-grid>section:first-child{grid-row:auto}.major-setup{grid-template-columns:1fr}.major-editor>header,.major-summary{flex-direction:column}.major-group article{grid-template-columns:1fr}.major-answer{grid-template-columns:repeat(3,1fr)}}.admin-main>header .breadcrumb,.front-main>header .breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0}.admin-main>header .breadcrumb button,.front-main>header .breadcrumb button{border:0;background:transparent;padding:0;color:#2f6fb3;font-size:inherit}.admin-main>header .breadcrumb span,.front-main>header .breadcrumb span{color:#aab0b8}.form-error{margin:0;padding:9px 11px;border:1px solid #efb4b4;border-radius:6px;background:#fff5f5;color:#b33;font-size:12px}
