:root{--navy:#07111f;--navy2:#0e1d31;--ink:#12243a;--muted:#708095;--line:#dce4ec;--paper:#fff;--bg:#f2f5f8;--blue:#2766e8;--cyan:#18a5b7;--green:#0ca678;--red:#ef4444;--amber:#f59f00;--shadow:0 20px 50px rgba(19,35,55,.12);font-family:Inter,"Noto Sans SC","Microsoft YaHei",sans-serif;color:var(--ink)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}.hidden{display:none!important}
.auth-shell{min-height:100vh;display:grid;grid-template-columns:1.12fr .88fr;background:#07111f}.auth-hero{position:relative;overflow:hidden;padding:64px;color:#fff;display:flex;flex-direction:column;justify-content:space-between;background:radial-gradient(circle at 25% 20%,#174775 0,transparent 32%),linear-gradient(140deg,#07111f,#0b1b2f 62%,#113458)}
.auth-hero:after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:32px 32px;mask-image:linear-gradient(to bottom,black,transparent)}
.brand{position:relative;z-index:1;display:flex;align-items:center;gap:14px}.brand img{width:68px;height:36px;object-fit:contain;filter:brightness(0) invert(1)}.brand strong{font-size:18px;letter-spacing:.06em}.brand small{display:block;margin-top:3px;color:#90a8c2;font-size:11px}
.hero-copy{position:relative;z-index:1;max-width:680px}.eyebrow{color:#63d3de;letter-spacing:.16em;font-weight:700;font-size:12px}.hero-copy h1{font-size:48px;line-height:1.13;margin:18px 0 18px;letter-spacing:-.035em}.hero-copy p{max-width:580px;color:#b6c4d4;font-size:16px;line-height:1.8}.hero-stats{display:flex;gap:36px;margin-top:34px}.hero-stats b{display:block;font-size:23px}.hero-stats span{color:#8fa1b5;font-size:12px}
.auth-card-wrap{display:grid;place-items:center;padding:40px;background:#f5f7fa}.auth-card{width:min(460px,100%);background:#fff;border:1px solid #e6ebf0;border-radius:20px;padding:32px;box-shadow:var(--shadow)}.auth-card h2{margin:0 0 8px}.sub{color:var(--muted);font-size:14px;line-height:1.6}.tabs{display:flex;background:#f1f4f7;padding:4px;border-radius:10px;margin:24px 0}.tabs button{border:0;background:transparent;flex:1;padding:10px;border-radius:8px;color:var(--muted)}.tabs button.active{background:#fff;color:var(--ink);box-shadow:0 3px 10px rgba(0,0,0,.06);font-weight:700}
.field{display:grid;gap:7px;margin:14px 0}.field label{font-size:12px;font-weight:700;color:#526176}.field input,.field select{height:44px;border:1px solid #d8e0e8;border-radius:9px;padding:0 12px;background:#fff;color:var(--ink);outline:none}.field input:focus,.field select:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(39,102,232,.1)}.btn{border:0;border-radius:9px;padding:11px 16px;font-weight:700}.btn.primary{background:var(--blue);color:#fff}.btn.dark{background:var(--navy);color:#fff}.btn.ghost{background:#edf2f6;color:var(--ink)}.btn.danger{background:#fff0f0;color:#d73a49}.btn.full{width:100%;margin-top:10px}.demo-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.tiny-note{font-size:11px;color:#8b98a9;text-align:center;margin-top:14px}
.app-shell{min-height:100vh}.topbar{height:68px;background:var(--navy);color:#fff;display:flex;align-items:center;padding:0 24px;gap:20px;position:sticky;top:0;z-index:30}.topbar .brand img{width:55px;height:30px}.topbar-nav{display:flex;gap:5px;margin-left:20px}.topbar-nav button{border:0;background:transparent;color:#9fb0c2;padding:10px 13px;border-radius:8px}.topbar-nav button.active,.topbar-nav button:hover{color:#fff;background:#172b43}.spacer{flex:1}.user-chip{display:flex;align-items:center;gap:10px;color:#cbd6e2;font-size:13px}.avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#2766e8,#22b8cf);display:grid;place-items:center;color:#fff;font-weight:800}.main{padding:28px;max-width:1480px;margin:auto}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}.page-head h1{margin:0;font-size:28px}.page-head p{margin:7px 0 0;color:var(--muted)}
.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:20px 0}.metric{background:#fff;border:1px solid var(--line);border-radius:13px;padding:18px}.metric span{font-size:12px;color:var(--muted)}.metric b{display:block;font-size:28px;margin-top:8px}.metric i{font-style:normal;font-size:11px;color:var(--green)}
.section{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-top:18px}.section-head{display:flex;align-items:center;justify-content:space-between;padding:17px 20px;border-bottom:1px solid var(--line)}.section-head h3{margin:0;font-size:15px}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;min-width:720px}.table th,.table td{padding:14px 20px;text-align:left;border-bottom:1px solid #edf1f4;font-size:13px}.table th{font-size:11px;color:#7d8998;background:#fafbfc}.status{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:700}.status.pending{background:#fff4d8;color:#9a6500}.status.approved{background:#dcf8ee;color:#087656}.status.rejected{background:#ffe7e8;color:#b32934}.actions{display:flex;gap:7px}.mini{border:1px solid var(--line);background:#fff;padding:6px 9px;border-radius:7px;font-size:12px}.mini.ok{color:#087656;border-color:#9de0c9}.mini.no{color:#c03945;border-color:#ffc1c5}
.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.project-card{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:.2s}.project-card:hover{transform:translateY(-2px);box-shadow:0 12px 25px rgba(24,42,64,.09)}.project-thumb{height:180px;background:#edf3f7;padding:14px;display:grid;place-items:center}.project-thumb svg{width:100%;height:100%;filter:drop-shadow(0 7px 10px rgba(30,47,65,.13))}.project-info{padding:16px}.project-info h3{margin:0 0 7px;font-size:15px}.meta{color:var(--muted);font-size:12px;display:flex;justify-content:space-between}.project-actions{display:flex;gap:8px;margin-top:14px}.project-actions .btn{font-size:12px;padding:8px 10px;flex:1}
.editor{height:calc(100vh - 68px);display:grid;grid-template-columns:64px 1fr 292px;background:#dfe5eb}.toolrail{background:#fff;border-right:1px solid #d7dee6;padding:10px 7px;display:flex;flex-direction:column;gap:7px;z-index:10}.tool{border:0;background:transparent;border-radius:9px;padding:8px 3px;color:#617086;font-size:10px}.tool span{display:grid;place-items:center;font-size:20px;height:26px}.tool.active,.tool:hover{background:#eaf1ff;color:#1d5ed7}.canvas-shell{position:relative;overflow:hidden;background:#dfe5eb}.canvas-toolbar{position:absolute;z-index:8;left:18px;top:14px;display:flex;gap:7px;background:rgba(255,255,255,.94);padding:6px;border-radius:10px;box-shadow:0 8px 18px rgba(24,40,58,.12)}.canvas-toolbar button{border:0;background:transparent;padding:7px 10px;border-radius:6px;color:#4f6074}.canvas-toolbar button:hover{background:#edf2f7}.zoom-label{font-size:12px;padding:8px;color:#78879a}.drawing-stage{width:100%;height:100%;overflow:auto;padding:68px 42px 50px;touch-action:none}.paper{background:#fff;width:min(1120px,100%);aspect-ratio:1.414/1;margin:auto;box-shadow:0 18px 45px rgba(34,48,65,.18);position:relative}.paper svg{display:block;width:100%;height:100%;user-select:none}.grid-line{stroke:#eef2f5;stroke-width:.03}.hall{fill:#fff;stroke:#162a40;stroke-width:.12}.booth{stroke:#193149;stroke-width:.09;cursor:move}.booth.selected{stroke:#2766e8;stroke-width:.18;filter:drop-shadow(0 0 .15px #2766e8)}.door{fill:none;stroke:#1c344d;stroke-width:.1}.arrow-red{stroke:#ef4444;fill:none;stroke-width:.16}.seat{fill:#d8e8f7;stroke:#72a9d4;stroke-width:.035}.stage{fill:#e9e3ff;stroke:#7056c5;stroke-width:.12}.dim{stroke:#36506d;stroke-width:.05;fill:none}.svg-title{font-weight:800;fill:#14283e}.svg-sub{fill:#52657a}.svg-label{font-weight:700;fill:#16304a}.rightpanel{background:#fff;border-left:1px solid #d7dee6;overflow:auto}.panel-title{padding:17px 18px;border-bottom:1px solid var(--line);font-weight:800}.panel-section{padding:16px 18px;border-bottom:1px solid #edf1f4}.panel-section h4{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#8290a0;margin:0 0 12px}.prop-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.prop{display:grid;gap:5px}.prop label{font-size:10px;color:#7c8b9b}.prop input,.prop select{width:100%;height:34px;border:1px solid #d8e0e8;border-radius:7px;padding:0 8px}.layer{display:flex;align-items:center;gap:9px;padding:7px 0;font-size:12px}.layer input{accent-color:var(--blue)}.mobile-tools{display:none}.toast{position:fixed;left:50%;bottom:30px;transform:translate(-50%,20px);background:#10243a;color:#fff;padding:11px 18px;border-radius:9px;opacity:0;pointer-events:none;transition:.2s;z-index:100;font-size:13px}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:980px){.auth-shell{grid-template-columns:1fr}.auth-hero{display:none}.auth-card-wrap{min-height:100vh}.metrics{grid-template-columns:repeat(2,1fr)}.project-grid{grid-template-columns:repeat(2,1fr)}.editor{grid-template-columns:56px 1fr}.rightpanel{position:fixed;right:0;top:68px;bottom:0;width:min(340px,88vw);z-index:20;transform:translateX(100%);transition:.25s;box-shadow:-12px 0 28px rgba(20,35,51,.15)}.rightpanel.open{transform:none}.drawing-stage{padding:62px 18px 85px}.mobile-tools{display:flex;position:fixed;bottom:18px;left:50%;transform:translateX(-50%);z-index:18;background:#fff;padding:7px;border-radius:12px;box-shadow:0 10px 30px rgba(22,38,56,.18);gap:5px}.mobile-tools button{border:0;background:#edf2f6;border-radius:7px;padding:9px 12px}}
@media(max-width:640px){.topbar{height:60px;padding:0 12px}.topbar-nav{display:none}.topbar .brand strong{font-size:14px}.topbar .brand small{display:none}.user-chip>span{display:none}.main{padding:18px 12px 90px}.page-head{align-items:flex-start}.page-head h1{font-size:23px}.metrics{grid-template-columns:1fr 1fr;gap:9px}.metric{padding:14px}.metric b{font-size:23px}.project-grid{grid-template-columns:1fr}.project-thumb{height:160px}.editor{height:calc(100vh - 60px);grid-template-columns:1fr}.toolrail{display:none}.canvas-toolbar{left:9px;top:9px;right:9px;overflow:auto}.drawing-stage{padding:58px 8px 90px}.paper{width:780px}.rightpanel{top:60px}.auth-card-wrap{padding:20px 14px}.auth-card{padding:24px 18px}.demo-row{grid-template-columns:1fr}.section{border-radius:10px}.table th,.table td{padding:12px}.page-head .btn{font-size:12px;padding:9px}.mobile-tools{bottom:max(10px,env(safe-area-inset-bottom));width:calc(100% - 20px);justify-content:space-around}.mobile-tools button{padding:9px 8px;font-size:12px}}
