:root{--ink:#121714;--green:#d7ff55;--paper:#f2f4f1;--line:#dfe3df;--orange:#ff6b35;--muted:#6d7771}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.6 Arial,"Microsoft YaHei",sans-serif}a{color:inherit;text-decoration:none}.sidebar{position:fixed;width:250px;inset:0 auto 0 0;background:#101512;color:white;padding:25px 20px;display:flex;flex-direction:column;z-index:10;overflow-y:auto}.admin-brand{display:flex;align-items:center;gap:12px;padding-bottom:22px;border-bottom:1px solid #303733}.admin-brand>b{display:grid;width:42px;height:42px;background:var(--green);color:var(--ink);place-items:center}.admin-brand span{font-weight:700;letter-spacing:1px}.admin-brand small{display:block;color:#818a84;font-size:10px;font-weight:400}.sidebar nav{display:grid;margin-top:10px}.sidebar nav>small{color:#59655e;font-size:10px;letter-spacing:1.5px;padding:16px 13px 4px}.sidebar nav a{color:#aab2ad;padding:10px 13px;border-radius:3px}.sidebar nav a:hover,.sidebar nav a.active{background:#252d28;color:white}.sidebar nav a.active:before{content:"";display:inline-block;width:6px;height:6px;background:var(--green);border-radius:50%;margin-right:10px}.sidebar-bottom{margin-top:auto;border-top:1px solid #303733;padding-top:12px;display:grid}.sidebar-bottom a{padding:7px 12px;color:#aab2ad}.admin-main{margin-left:250px;min-height:100vh}.admin-main>header{height:70px;background:white;padding:0 35px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.admin-main>header span{color:var(--muted)}.admin-main>header b{background:#edf0ec;padding:7px 13px;border-radius:20px}.admin-menu{display:none}.admin-main main{padding:38px;max-width:1700px}.page-title{display:flex;align-items:end;justify-content:space-between;margin-bottom:28px;gap:30px}.page-title>div>span,.panel-title small{font-size:10px;letter-spacing:2px;color:#7c857f}.page-title h1,main>h1{font-size:34px;margin:4px 0}.page-title p{margin:0;color:var(--muted)}.primary-link,button{display:inline-block;border:0;padding:12px 18px;background:var(--ink);color:white;font-weight:700;cursor:pointer}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:28px}.stats div{background:white;padding:25px;border:1px solid var(--line)}.stats b{display:block;font-size:34px;margin:4px 0}.stats span,.stats small{color:var(--muted)}.stats small{font-size:11px}.admin-panel,.panel{background:white;padding:25px;border:1px solid var(--line);margin-bottom:24px}.panel{max-width:850px}.panel-title{display:flex;align-items:start;justify-content:space-between;margin-bottom:18px;gap:20px}.panel-title h2{margin:2px 0;font-size:21px}.panel-title>a,.row-link{color:#d94d21;font-weight:700}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.donut-wrap{display:grid;grid-template-columns:190px 1fr;gap:35px;align-items:center}.donut{width:180px;height:180px;border-radius:50%;background:conic-gradient(var(--orange) 0 var(--p1),#4c82b8 var(--p1) var(--p2),#8dad6d var(--p2) var(--p3),#d8ddd8 var(--p3) 100%);display:grid;place-items:center;position:relative}.donut:after{content:"";position:absolute;width:112px;height:112px;border-radius:50%;background:white}.donut span{z-index:1;text-align:center;color:var(--muted)}.donut b{display:block;font-size:28px;color:var(--ink)}.chart-legend{display:grid;gap:11px}.chart-legend span{display:grid;grid-template-columns:10px 1fr auto;gap:10px;align-items:center}.chart-legend i{width:9px;height:9px;border-radius:50%}.c1{background:var(--orange)}.c2{background:#4c82b8}.c3{background:#8dad6d}.c4{background:#d8ddd8}.bar-chart{height:235px;display:flex;align-items:end;gap:16px;padding:20px 10px 0}.bar-chart>div{height:100%;flex:1;display:flex;flex-direction:column;justify-content:end;align-items:center;gap:7px}.bar-chart span{display:block;width:min(42px,80%);background:linear-gradient(var(--green),#9bc85d);min-height:5px}.bar-chart b{font-size:12px}.bar-chart small{color:var(--muted)}label{display:grid;gap:6px;margin:13px 0;font-weight:600}input,select,textarea{padding:11px 12px;border:1px solid #c9cfca;font:inherit;width:100%;background:white}input:focus,select:focus,textarea:focus{outline:2px solid rgba(18,23,20,.1);border-color:var(--ink)}label input[type=checkbox]{width:auto}.table-wrap{overflow:auto}table{width:100%;background:white;border-collapse:collapse;border:1px solid var(--line)}th,td{text-align:left;padding:13px;border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap}th{background:#f8f9f7;color:#68716b;font-size:12px}td img{width:80px;height:60px;object-fit:cover}.table-sub{display:block;color:var(--muted);font-weight:400;margin-top:3px;max-width:330px;overflow:hidden;text-overflow:ellipsis}.inline{display:inline}.inline button,.danger{background:#b63a2b;margin-left:8px;padding:8px 12px}.badge{display:inline-block;padding:5px 9px;border-radius:20px;font-size:12px;font-weight:700}.badge.large{font-size:14px;padding:8px 13px}.badge.new{background:#fff0db;color:#8a4a00}.badge.reviewing{background:#e5f2f8;color:#176080}.badge.need_info{background:#fff0eb;color:#9e3b1e}.badge.quoted{background:#ede8ff;color:#5839a1}.badge.confirmed,.badge.producing{background:#e5edff;color:#28589c}.badge.shipped,.badge.closed{background:#e3f1df;color:#286425}.badge.cancelled{background:#eceeeb;color:#68716b}.error{color:#9c2c16;background:#fff0eb;border:1px solid #ffc8b7;padding:10px;margin:12px 0}.empty{color:#7b847e}.toolbar{display:flex;gap:10px;margin-bottom:18px}.toolbar input{max-width:480px}.toolbar a{padding:11px;color:var(--muted)}.workflow-tabs{display:flex;gap:8px;overflow:auto;margin-bottom:17px;padding-bottom:3px}.workflow-tabs a{white-space:nowrap;background:white;border:1px solid var(--line);padding:9px 12px;color:var(--muted)}.workflow-tabs a.active{background:var(--ink);color:white;border-color:var(--ink)}.workflow-tabs b{margin-left:5px}.mini-count{font-size:11px;background:#edf0ec;padding:5px 7px}.guest-label{display:inline-block;background:#fff0db;color:#8a4a00;font-size:10px;padding:3px 6px;margin-top:4px}.empty-state-admin{text-align:center;background:white;border:1px solid var(--line);padding:60px}.status-button{padding:7px 10px;border-radius:20px;font-size:11px}.status-button.enabled{background:#e3f1df;color:#286425}.status-button.disabled{background:#fff0eb;color:#9e2e11}.back-admin{display:block;color:var(--muted);margin-bottom:20px}.detail-title{align-items:center}.admin-notice{padding:13px 16px;margin-bottom:18px}.admin-notice.success{background:#e3f1df;color:#286425}.admin-notice.error{background:#fff0eb;color:#9e2e11}.admin-detail-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,.65fr);gap:22px;align-items:start}.admin-detail-side{position:sticky;top:20px}.admin-specs{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.admin-specs>div{background:#f8f9f7;padding:15px}.admin-specs small,.admin-specs span{display:block;color:var(--muted)}.requirement-text{background:#f8f9f7;padding:18px;margin-top:18px}.admin-messages{display:grid;gap:12px}.admin-messages article{padding:14px 16px;background:#f1f3f0;max-width:85%}.admin-messages article.admin{background:#e5f0dc;margin-left:auto}.admin-messages article>div{display:flex;justify-content:space-between;gap:20px}.admin-messages article span{font-size:11px;color:var(--muted)}.admin-messages p{margin:7px 0 0}.reply-box{border-top:1px solid var(--line);margin-top:20px;padding-top:15px}.quote-history{display:grid;gap:7px;background:#f8f9f7;padding:14px;margin-bottom:16px}.quote-edit-row{display:grid;grid-template-columns:1.15fr 1.5fr .55fr .45fr .7fr;gap:8px;margin-bottom:8px}.ghost-button{background:#e8ebe7;color:var(--ink);padding:9px 13px}.form-row{display:grid;grid-template-columns:.55fr 1.45fr;gap:15px}.admin-progress article{display:grid;grid-template-columns:14px 1fr;gap:10px;position:relative;padding-bottom:20px}.admin-progress article:before{content:"";position:absolute;left:4px;top:10px;bottom:0;border-left:1px solid var(--line)}.admin-progress article:last-child:before{display:none}.admin-progress i{width:9px;height:9px;border-radius:50%;background:var(--orange);margin-top:5px;z-index:1}.admin-progress p{color:var(--muted);margin:3px 0}.admin-progress span{font-size:10px;color:#929a95}.admin-files{display:grid}.admin-files a{padding:10px 0;border-top:1px solid var(--line)}.admin-files b,.admin-files span{display:block;overflow:hidden;text-overflow:ellipsis}.admin-files span{color:var(--muted);font-size:11px}.login{min-height:100vh;display:grid;place-items:center;background:#e9ece7;padding:20px}.login-card{width:min(860px,100%);display:grid;grid-template-columns:1fr 1.15fr;background:white;box-shadow:0 25px 70px rgba(18,23,20,.15)}.login-intro{background:var(--ink);color:white;padding:55px;display:flex;flex-direction:column;justify-content:center}.login-intro>b{display:grid;width:55px;height:55px;background:var(--green);color:var(--ink);place-items:center;font-size:20px}.login-intro>span{font-size:28px;font-weight:700;margin-top:25px}.login-intro p{color:#abb4ae}.login-card form{padding:55px}.login-card h1{font-size:30px;margin:0}.login-card form>p{color:#7a837d}.login-card form button{width:100%;margin-top:8px}.login-card form>a{display:block;text-align:center;margin-top:18px;color:#737c76}@media(max-width:1100px){.dashboard-grid,.admin-detail-layout{grid-template-columns:1fr}.admin-detail-side{position:static}.stats{grid-template-columns:1fr 1fr}}@media(max-width:900px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:none}.admin-main{margin:0}.admin-menu{display:inline-block;margin-right:15px;padding:7px 10px}.admin-main main{padding:25px}.quote-edit-row{grid-template-columns:1fr 1fr}.donut-wrap{grid-template-columns:1fr}.donut{margin:auto}}@media(max-width:600px){.stats{grid-template-columns:1fr}.login-card{grid-template-columns:1fr}.login-intro{display:none}.login-card form{padding:35px 25px}.page-title{align-items:flex-start;gap:20px;flex-direction:column}.admin-main>header{padding:0 18px}.admin-main main{padding:18px}.admin-specs{grid-template-columns:1fr 1fr}.form-row{grid-template-columns:1fr}.toolbar{display:grid}.bar-chart{gap:6px}.donut-wrap{gap:20px}}
