:root { --ink:#18283e; --blue:#3475d5; --orange:#ff7b3c; --line:#dce5ef; --muted:#748399; }
* { box-sizing:border-box; }
html { min-height:100%; background:#edf3f9; }
body { margin:0; min-height:100vh; color:var(--ink); font-family:"MiSans","HarmonyOS Sans SC","PingFang SC","Microsoft YaHei",system-ui,sans-serif; -webkit-font-smoothing:antialiased; }
button,input,select,textarea { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible { outline:3px solid rgba(52,117,213,.24); outline-offset:2px; }
[hidden] { display:none!important; }
.admin-brand { color:inherit; text-decoration:none; display:flex; flex-direction:column; line-height:1; }
.admin-brand span { font-size:22px; font-weight:850; letter-spacing:.08em; }
.admin-brand span b { color:#1f5d9c; }
.admin-brand small { margin-top:5px; color:#8291a4; font-size:7px; letter-spacing:.25em; }
.admin-login { min-height:100vh; display:grid; place-items:center; padding:24px; background:radial-gradient(circle at 15% 10%,rgba(75,145,225,.18),transparent 34%),radial-gradient(circle at 90% 80%,rgba(255,125,64,.13),transparent 30%),linear-gradient(145deg,#eef5fc,#e6eff8); }
.admin-login-card { width:min(430px,100%); padding:38px 42px 34px; border:1px solid rgba(255,255,255,.9); border-radius:24px; background:rgba(255,255,255,.9); box-shadow:0 28px 80px rgba(41,76,116,.16); }
.admin-login-card .admin-brand { align-items:center; }
.admin-lock { width:64px; height:64px; margin:34px auto 17px; display:grid; place-items:center; border-radius:19px; background:#edf4fd; color:#3372c8; }
.admin-lock svg { width:32px; height:32px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.admin-login h1 { margin:0; text-align:center; font-size:28px; font-weight:900; }
.admin-login-card>p { margin:10px auto 25px; text-align:center; color:#748397; font-size:12px; line-height:1.7; }
.admin-login label span { display:block; margin-bottom:8px; color:#5f6e82; font-size:11px; font-weight:700; }
.admin-login input { width:100%; height:48px; padding:0 14px; border:1px solid #d3dfeb; border-radius:10px; background:#f8fbfe; color:var(--ink); outline:0; }
.admin-login input:focus { border-color:#5d91d8; background:#fff; box-shadow:0 0 0 4px rgba(60,122,207,.09); }
.admin-login form button { width:100%; height:50px; margin-top:15px; border:0; border-radius:10px; background:linear-gradient(115deg,#3b7ddb,#2f65b7); color:#fff; font-size:13px; font-weight:800; cursor:pointer; box-shadow:0 10px 24px rgba(47,101,183,.22); }
.admin-login form button span { margin-left:10px; }
#admin-login-error { min-height:18px; margin-top:8px; color:#d45242; font-size:10px; text-align:center; }
.admin-login-card>small { display:block; margin-top:13px; color:#9aa6b4; text-align:center; font-size:9px; }
.admin-app { min-height:100vh; background:#f2f6fa; }
.admin-header { position:sticky; top:0; z-index:20; height:72px; padding:0 max(24px,calc((100vw - 1440px)/2)); display:flex; align-items:center; justify-content:space-between; gap:20px; border-bottom:1px solid rgba(79,103,132,.13); background:rgba(255,255,255,.92); backdrop-filter:blur(16px); }
.admin-header-actions { display:flex; align-items:center; gap:9px; }
.admin-header-actions button,.admin-header-actions a { height:36px; padding:0 13px; display:flex; align-items:center; gap:7px; border:1px solid #d8e2ec; border-radius:8px; background:#fff; color:#5d6e83; text-decoration:none; font-size:10px; cursor:pointer; }
.admin-header-actions button:hover,.admin-header-actions a:hover { border-color:#afc4dc; color:#2f66a9; }
#admin-notify i { width:7px; height:7px; border-radius:50%; background:#f09a48; }
#admin-notify.is-on i { background:#42ae74; box-shadow:0 0 0 4px rgba(66,174,116,.12); }
.admin-main { width:min(1440px,calc(100% - 48px)); margin:0 auto; padding:34px 0 40px; }
.admin-title-row { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; }
.admin-title-row>div>span { color:#7590af; font-size:8px; letter-spacing:.22em; font-weight:750; }
.admin-title-row h1 { margin:6px 0 5px; font-size:30px; letter-spacing:.01em; }
.admin-title-row p { margin:0; color:#7d8b9d; font-size:11px; }
#admin-refresh { height:38px; padding:0 14px; display:flex; align-items:center; gap:7px; border:1px solid #d7e1ec; border-radius:8px; background:#fff; color:#5a6e86; font-size:10px; cursor:pointer; }
#admin-refresh svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.admin-stats { margin-top:24px; display:grid; grid-template-columns:repeat(4,1fr); gap:13px; }
.admin-stats article { min-height:112px; padding:18px 20px; display:grid; grid-template-columns:1fr auto; gap:3px 15px; border:1px solid rgba(215,225,236,.9); border-radius:14px; background:#fff; box-shadow:0 8px 28px rgba(56,84,116,.055); }
.admin-stats span { color:#607188; font-size:10px; font-weight:700; }
.admin-stats strong { grid-row:1/3; grid-column:2; align-self:center; color:#275eaa; font-size:31px; }
.admin-stats article:nth-child(2) strong { color:#ef6c3c; }
.admin-stats small { align-self:end; color:#a0abb8; font-size:8px; }
.admin-workspace { margin-top:16px; min-height:650px; display:grid; grid-template-columns:minmax(380px,45%) minmax(0,1fr); border:1px solid var(--line); border-radius:16px; background:#fff; box-shadow:0 14px 42px rgba(47,76,110,.07); overflow:hidden; }
.admin-list-pane { border-right:1px solid var(--line); min-width:0; }
.admin-filters { padding:17px; display:grid; grid-template-columns:1fr 105px; gap:9px; border-bottom:1px solid var(--line); }
.admin-search { height:39px; display:flex; align-items:center; gap:8px; padding:0 10px; border:1px solid #dbe4ed; border-radius:8px; background:#f8fafc; }
.admin-search svg { width:16px; height:16px; flex:0 0 auto; fill:none; stroke:#8190a2; stroke-width:1.7; }
.admin-search input { width:100%; min-width:0; border:0; outline:0; background:transparent; color:#34475e; font-size:10px; }
.admin-filters select { width:100%; border:1px solid #dbe4ed; border-radius:8px; padding:0 8px; background:#f8fafc; color:#5d6e82; outline:0; font-size:10px; }
.admin-list-head { padding:12px 17px; display:flex; justify-content:space-between; color:#647489; font-size:9px; background:#fbfcfe; }
.admin-list-head small { color:#9aa6b4; }
.admin-list { max-height:610px; overflow:auto; }
.admin-row { width:100%; padding:15px 17px; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:6px 12px; border:0; border-top:1px solid #edf1f5; background:#fff; text-align:left; cursor:pointer; }
.admin-row:hover { background:#f8fbff; }
.admin-row.is-active { background:#edf5ff; box-shadow:inset 3px 0 #4381dc; }
.admin-row-main { min-width:0; display:flex; align-items:center; gap:9px; }
.admin-row-main strong { overflow:hidden; color:#26394f; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.admin-row-main small { flex:0 0 auto; color:#8190a1; font-size:9px; }
.admin-row-time { color:#9aa6b4; font-size:8px; white-space:nowrap; }
.admin-row-product { overflow:hidden; color:#67788e; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.admin-row-meta { display:flex; justify-content:flex-end; align-items:center; gap:6px; color:#8997a7; font-size:8px; }
.status { display:inline-flex; align-items:center; padding:4px 7px; border-radius:99px; font-size:8px; font-weight:750; }
.status-new { background:#fff0e9; color:#da6337; }
.status-contacted { background:#eaf3ff; color:#3972bd; }
.status-quoted { background:#efeafe; color:#7252b9; }
.status-won { background:#e7f7ee; color:#2d8b5b; }
.status-lost { background:#eef1f4; color:#6f7d8c; }
.admin-empty { min-height:330px; display:grid; place-items:center; align-content:center; text-align:center; }
.admin-empty svg { width:54px; height:54px; fill:none; stroke:#b5c3d2; stroke-width:1.3; }
.admin-empty strong { margin-top:13px; color:#617287; font-size:12px; }
.admin-empty span { margin-top:6px; color:#9aa6b4; font-size:9px; }
.admin-detail { min-width:0; max-height:665px; overflow:auto; background:#fcfdff; }
.admin-detail-back { display:none; }
.admin-detail-placeholder { min-height:610px; display:grid; place-items:center; align-content:center; padding:30px; text-align:center; }
.admin-detail-placeholder svg { width:70px; height:70px; fill:none; stroke:#b4c4d5; stroke-width:1.25; }
.admin-detail-placeholder strong { margin-top:16px; font-size:14px; color:#53667e; }
.admin-detail-placeholder p { max-width:330px; margin:7px auto 0; color:#94a1b1; font-size:10px; line-height:1.6; }
.detail-head { padding:23px 25px 18px; display:flex; justify-content:space-between; gap:18px; border-bottom:1px solid var(--line); background:#fff; }
.detail-head small { display:block; color:#8392a4; font-size:8px; }
.detail-head h2 { margin:6px 0 0; color:#234466; font-size:20px; letter-spacing:.05em; }
.detail-status-select { height:36px; border:1px solid #d4e0eb; border-radius:8px; padding:0 9px; background:#f8fbfe; color:#4c627b; font-size:10px; }
.detail-section { margin:15px 18px 0; padding:19px; border:1px solid #e2e9f0; border-radius:12px; background:#fff; }
.detail-section-title { margin:0 0 15px; display:flex; align-items:center; gap:8px; color:#2e435b; font-size:11px; }
.detail-section-title i { width:3px; height:14px; border-radius:3px; background:#4d87d5; }
.detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 18px; }
.detail-item span,.detail-item strong { display:block; }
.detail-item span { color:#8b98a8; font-size:8px; }
.detail-item strong { margin-top:5px; color:#33475e; font-size:11px; line-height:1.5; word-break:break-word; }
.detail-item a { color:#286dc4; text-decoration:none; }
.detail-requirement { margin:0; color:#465a72; font-size:10px; line-height:1.8; white-space:pre-wrap; word-break:break-word; }
.detail-files { display:grid; gap:8px; }
.detail-file { display:grid; grid-template-columns:34px minmax(0,1fr) auto; gap:10px; align-items:center; padding:9px; border:1px solid #e1e8ef; border-radius:9px; background:#fafcff; }
.detail-file>span { width:34px; height:34px; display:grid; place-items:center; border-radius:7px; background:#eaf2fd; color:#3a72ba; font-size:7px; font-weight:800; }
.detail-file div { min-width:0; }
.detail-file strong,.detail-file small { display:block; }
.detail-file strong { overflow:hidden; color:#33465c; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.detail-file small { margin-top:3px; color:#8b99a9; font-size:8px; }
.detail-file a { padding:7px 10px; border:1px solid #bfd1e6; border-radius:7px; color:#2868b4; text-decoration:none; font-size:9px; }
.detail-note { width:100%; min-height:92px; padding:11px; border:1px solid #d8e2ec; border-radius:9px; background:#fafcff; color:#40546c; outline:0; resize:vertical; font-size:10px; line-height:1.6; }
.detail-note:focus { border-color:#6392cf; box-shadow:0 0 0 4px rgba(71,126,199,.08); }
.detail-save-row { padding:15px 18px 22px; display:flex; align-items:center; justify-content:flex-end; gap:12px; }
.detail-save-row small { margin-right:auto; color:#8f9bab; font-size:8px; }
.detail-save-row button { height:38px; padding:0 17px; border:0; border-radius:8px; background:#3475cf; color:#fff; font-size:10px; font-weight:750; cursor:pointer; }
.admin-footer { padding:20px; color:#95a1af; text-align:center; font-size:8px; }
.admin-toast { position:fixed; z-index:99; right:22px; bottom:22px; max-width:320px; padding:12px 16px; border-radius:10px; background:#203a58; color:#fff; box-shadow:0 14px 35px rgba(31,54,83,.25); font-size:10px; opacity:0; transform:translateY(15px); pointer-events:none; transition:.25s ease; }
.admin-toast.is-show { opacity:1; transform:translateY(0); }
@media(max-width:900px){.admin-main{width:calc(100% - 24px);padding-top:22px}.admin-header{padding:0 14px}.admin-header-actions a,#admin-notify span{display:none}.admin-title-row h1{font-size:25px}.admin-stats{grid-template-columns:repeat(2,1fr)}.admin-workspace{grid-template-columns:1fr}.admin-list-pane{border-right:0}.admin-list{max-height:420px}.admin-detail{display:none;position:fixed;z-index:30;inset:72px 0 0;max-height:none;background:#f7f9fc}.admin-detail.is-open{display:block}.admin-detail-back{position:sticky;z-index:3;top:0;width:100%;display:block;padding:13px 18px;border:0;border-bottom:1px solid var(--line);background:#edf4fc;color:#376fae;text-align:left;font:inherit;font-size:10px;cursor:pointer}.admin-detail-placeholder{display:none}.detail-head{padding-top:18px}.admin-footer{padding-bottom:30px}}
@media(max-width:520px){.admin-login-card{padding:32px 22px}.admin-title-row p{display:none}.admin-stats{gap:8px}.admin-stats article{min-height:95px;padding:14px}.admin-workspace{min-height:520px}.admin-filters{grid-template-columns:1fr}.detail-grid{grid-template-columns:1fr}.detail-head{align-items:flex-start}.detail-file{grid-template-columns:31px minmax(0,1fr)}.detail-file a{grid-column:1/3;text-align:center}}
