:root{font-family:Noto Sans SC,Microsoft YaHei,sans-serif;color:#253d37;background:#f3f5f1;font-size:14px;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,.button{border:0;background:#235c4b;color:#fff;padding:10px 15px;border-radius:7px;cursor:pointer;text-decoration:none;white-space:nowrap;display:inline-block}button:hover,.button:hover{filter:brightness(.94)}button:disabled{opacity:.45;cursor:default}.secondary{background:#edf2ed;color:#355347;border:1px solid #d6e1d8}.danger{color:#a03f37}.text-button{background:transparent;color:#356b53;padding:5px}.error{color:#a0352d!important}.warning{color:#9a651c}.saved{color:#337454}input,select{border:1px solid #d9e1d8;border-radius:6px;padding:9px;background:#fff;color:#263e34;min-width:0}input:focus{outline:2px solid #94b6a3}small{display:block;font-size:12px;color:#77847b;margin-top:4px;line-height:1.6}p{line-height:1.7;color:#68786c}header{height:78px;background:#fff;border-bottom:1px solid #dce3d9;display:flex;align-items:center;gap:24px;padding:0 30px;position:sticky;top:0;z-index:5}header nav{display:flex;gap:4px;flex:1}nav button{background:transparent;color:#657367;padding:12px}nav button.selected{background:#edf3e9;color:#24533d;font-weight:700}.brand{font-size:29px;letter-spacing:4px;font-weight:700;color:#215340;white-space:nowrap}.brand span{font-size:11px;letter-spacing:2px;display:block}header>span{font-size:12px}main{padding:28px 30px;max-width:1800px;margin:auto}.page-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.page-title h1{font-size:28px;margin:7px 0}.page-title p{margin:0}.page-title>div>button{margin-left:10px}.page-title small{letter-spacing:2px;font-size:10px}.workspace{display:grid;grid-template-columns:210px minmax(0,1fr);gap:20px}aside{max-height:calc(100vh - 230px);overflow:auto}aside h3{font-size:13px;color:#788477}.quote-card{text-align:left;display:block;width:100%;background:transparent;color:#415047;white-space:normal;margin-bottom:8px}.quote-card.chosen{background:#e2ebe0;border-left:3px solid #3c7055}.sheet,.panel{background:#fff;border:1px solid #dde5d9;border-radius:10px;padding:20px;min-width:0}.toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:15px}.toolbar h2{margin:0;flex:1;font-size:18px}.toolbar input{flex:1;min-width:150px}.toolbar strong:last-child{margin-left:auto}.meta{display:flex;gap:14px;margin-bottom:20px}.meta .field{flex:1}.field{display:flex;flex-direction:column;gap:5px;font-size:11px;color:#718071}.field input{width:100%;font-size:13px}.table-wrap{min-height:48vh;max-height:65vh;overflow:auto}table{border-collapse:collapse;width:100%;table-layout:fixed}th{text-align:left;color:#788576;font-size:12px;background:#f4f6f1;padding:12px 10px;font-weight:500;position:sticky;top:0}td{border-bottom:1px solid #e9eee6;padding:14px 10px;vertical-align:top;overflow-wrap:anywhere;font-size:13px}td strong{font-weight:600}th:first-child{width:36px}.request{width:27%}th:nth-child(2){width:27%}th:nth-child(3){width:40%}th:nth-child(4){width:12%}th:last-child{width:115px}.request p{font-size:12px;margin:5px 0}.inline{display:flex;gap:8px;margin-top:10px}.inline .field{flex:1;min-width:0}.inline input{padding:6px}.component{padding:10px;background:#f5f7f2;border-radius:6px;margin-bottom:8px}.actions button{display:block;width:100%;margin-bottom:6px;padding:7px;font-size:12px}.empty{text-align:center;padding:90px 30px}.alert{padding:12px 30px;background:#fff2d9;display:flex;justify-content:space-between;align-items:center}.alert button{background:transparent;color:inherit}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#152b2855;z-index:20;display:flex;justify-content:flex-end}.drawer{background:#fafbf8;width:580px;padding:25px;overflow:auto;box-shadow:-8px 0 40px #14231c22}.candidate{background:#fff;border:1px solid #dde5d7;border-radius:9px;padding:20px;margin:15px 0}.candidate h3{margin:12px 0}.badge{background:#e8f0e0;color:#44703c;padding:4px 8px;border-radius:4px;font-size:11px}.badge.warn{background:#fff0db;color:#956023}.modal{background:#fff;margin:auto;padding:30px;border-radius:10px;width:600px;max-height:95vh;overflow:auto}.editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:20px}.preview{max-height:45vh;overflow:auto}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.login{min-height:100vh;background:linear-gradient(120deg,#e6eddc,#f7f7ee);padding:8vh 9vw;position:relative}.login h1{font-size:44px;font-weight:500;line-height:1.6;margin-top:12vh}.login form{position:absolute;right:10vw;top:25vh;width:350px;padding:35px;background:#fffd;border:1px solid white;border-radius:15px;box-shadow:0 20px 60px #3548300c}.login input,.login button{display:block;width:100%;margin:18px 0}.login form h2{font-size:21px}@media(max-width:1100px){header{gap:10px;padding:0 16px}nav button{padding:9px;font-size:12px}main{padding:20px 15px}.workspace{grid-template-columns:160px minmax(0,1fr);gap:10px}.sheet{padding:12px}.login form{right:5vw}.login h1{font-size:32px}.toolbar{gap:7px}td{padding:10px 6px}.inline{flex-wrap:wrap}}@media(max-width:760px){header{height:auto;flex-wrap:wrap;padding:12px}header nav{order:3;width:100%}.workspace{grid-template-columns:1fr}aside{max-height:140px}.meta{flex-wrap:wrap}.login form{position:static;margin-top:30px}.login h1{margin-top:30px}.table-wrap{overflow-x:auto}.table-wrap table{min-width:780px}.metrics{grid-template-columns:1fr 1fr}}
