:root{font-family:"Microsoft YaHei","PingFang SC","Segoe UI",sans-serif;--ink:#0a1727;--muted:#687a91;--line:#dbe6f1;--blue:#6788ee;--cyan:#74d2cf;--paper:#f5f8fc;--white:#fff;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}.login{min-height:100vh;display:grid;grid-template-columns:1.12fr .88fr;background:#fff}.login-panel{padding:46px 5vw;display:flex;flex-direction:column;color:#f5f9ff;background:radial-gradient(circle at 82% 18%,#5d85c866 0,transparent 25%),linear-gradient(145deg,#081626,#16304f 70%,#284b70)}.brand{display:flex;align-items:center;gap:11px;font-weight:760}.brand i{width:23px;height:23px;border-radius:7px;background:linear-gradient(145deg,#fff,#7ed8d5);box-shadow:0 0 24px #7ed8d566;transform:rotate(12deg)}.brand.dark{color:var(--ink)}.login-copy{margin:auto 0 9vh;max-width:720px}.login-copy h1{font-size:clamp(34px,4.5vw,66px);line-height:1.2;letter-spacing:-.055em;margin:0 0 26px}.login-copy p{max-width:600px;color:#bfd0e2;line-height:1.9;font-size:16px}.login form{align-self:center;width:min(420px,80%);margin:auto;display:grid;gap:20px}.login form small{color:#4568cc;font-weight:750}.login h2{font-size:34px;letter-spacing:-.04em;margin:0 0 14px}.login label,dialog label{display:grid;gap:8px;font-size:14px;font-weight:700}.login input,dialog :is(input,select,textarea){border:1px solid var(--line);border-radius:12px;padding:13px 14px;outline:none;background:#fff}.login input:focus,dialog :is(input,select,textarea):focus{border-color:var(--blue);box-shadow:0 0 0 4px #6788ee18}.login form>button,dialog button[type=submit]{border:0;border-radius:12px;padding:14px 18px;color:#fff;background:var(--ink);font-weight:750}.message{min-height:20px;color:#b54b5c;margin:0;font-size:13px}.portal{min-height:100vh;background:radial-gradient(circle at 85% 0,#e9f2ff 0,transparent 28%),var(--paper)}.portal-head{height:78px;padding:0 clamp(22px,5vw,72px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#ffffffcc;backdrop-filter:blur(18px)}.portal-head>div:last-child{display:flex;align-items:center;gap:20px;color:var(--muted);font-size:14px}.portal-head button{border:0;background:transparent;color:var(--muted)}.portal-main{max-width:1320px;margin:auto;padding:70px clamp(20px,4vw,56px)}.welcome p{color:#4766b5;font-weight:750;margin:0 0 13px}.welcome h1{font-size:clamp(34px,5vw,68px);line-height:1.15;letter-spacing:-.06em;margin:0;max-width:900px}.trial-focus{margin:56px 0 42px;padding:28px 30px;border-radius:24px;color:#f4f8ff;background:linear-gradient(120deg,#0b1a2d,#1c3857);box-shadow:0 24px 70px #0a17272a;overflow:hidden;position:relative}.trial-focus:after{content:"";position:absolute;width:330px;height:330px;border:1px solid #8ecddf33;border-radius:50%;right:-70px;top:-180px}.trial-focus header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;position:relative;z-index:1}.trial-focus h2{margin:0 0 8px;font-size:24px}.trial-focus p{margin:0;color:#adc0d4}.trial-focus strong{font-size:42px}.progress-track{height:8px;background:#ffffff18;border-radius:99px;margin-top:28px;overflow:hidden}.progress-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),var(--cyan));transition:width .7s ease}.portal-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.portal-grid>section{background:#fff;border:1px solid var(--line);border-radius:24px;padding:25px;min-height:380px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.section-title h2{margin:0;font-size:20px}.section-title span{color:var(--muted);font-size:12px}.section-title button{border:0;border-radius:10px;padding:10px 13px;background:#edf2ff;color:#3f61c1;font-weight:700}.systems,.feedback-list{display:grid}.system-item{padding:20px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr auto;gap:20px}.system-item:last-child,.feedback-item:last-child{border:0}.system-item h3,.feedback-item h3{margin:0 0 7px;font-size:16px}.system-item p,.feedback-item p{margin:0;color:var(--muted);font-size:13px;line-height:1.65}.system-item button{align-self:center;border:1px solid var(--line);border-radius:10px;background:#fff;padding:9px 12px;color:var(--ink)}.feedback-item{padding:17px 0;border-bottom:1px solid var(--line)}.feedback-meta{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}.badge{border-radius:999px;padding:5px 9px;font-size:11px;font-weight:750;background:#edf2f8;color:#5c7087}.badge.new,.badge.confirmed,.badge.planned{background:#eaf0ff;color:#4868c5}.badge.completed{background:#e7f6ef;color:#347d62}.feedback-meta time{font-size:12px;color:var(--muted)}.empty{padding:46px 15px;text-align:center;color:var(--muted)}dialog{border:0;border-radius:22px;padding:0;width:min(600px,calc(100% - 32px));box-shadow:0 34px 90px #07152245}dialog::backdrop{background:#07152299;backdrop-filter:blur(5px)}dialog form{padding:26px;display:grid;gap:18px}dialog header,dialog footer{display:flex;align-items:center;justify-content:space-between;gap:12px}dialog h2{margin:0;font-size:21px}dialog header button{border:0;background:transparent;font-size:28px;color:var(--muted)}dialog footer{justify-content:flex-end}.quiet{border:1px solid var(--line);border-radius:11px;background:#fff;padding:12px 16px}.toast{position:fixed;right:28px;bottom:28px;padding:13px 18px;border-radius:12px;color:#fff;background:var(--ink);opacity:0;transform:translateY(10px);transition:.2s;pointer-events:none}.toast.show{opacity:1;transform:none}@media(max-width:850px){.login{grid-template-columns:1fr}.login-panel{min-height:300px}.login-copy{margin-top:70px}.login form{padding:55px 0}.portal-main{padding-top:45px}.portal-grid{grid-template-columns:1fr}.welcome h1 br{display:none}}@media(max-width:560px){.portal-head{height:68px}.portal-head #customer-name{display:none}.portal-main{padding-inline:15px}.trial-focus{padding:22px}.trial-focus strong{font-size:28px}.section-title{align-items:flex-start}.login-copy h1{font-size:35px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important}}

