:root{--navy:#18324b;--blue:#2563eb;--bg:#f4f7fb;--line:#dbe3ee;--text:#1e293b;--muted:#64748b;--good:#15803d;--bad:#b91c1c}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px Arial,sans-serif}.topbar{background:var(--navy);color:#fff;padding:22px max(20px,calc((100% - 1400px)/2));display:flex;justify-content:space-between;align-items:center}.topbar h1{margin:0 0 5px;font-size:24px}.topbar p{margin:0;color:#cbd5e1}.container{max-width:1400px;margin:24px auto;padding:0 18px}.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px;margin-bottom:18px;box-shadow:0 2px 8px #18324b0d}h2{margin:0 0 16px;font-size:18px}.form-grid{display:grid;grid-template-columns:2fr 2fr 1fr 2fr;gap:14px}label{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-weight:600}input,select{border:1px solid #cbd5e1;border-radius:7px;padding:9px;color:var(--text);font:inherit;background:#fff}button,.button{border:1px solid #cbd5e1;background:#fff;color:var(--text);border-radius:7px;padding:9px 12px;cursor:pointer;font-weight:600}.button input{display:none}.primary{background:var(--blue);color:white;border-color:var(--blue)}.ghost{background:transparent;color:#fff;border-color:#ffffff66}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.stats div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px}.stats span{color:var(--muted);display:block}.stats strong{display:block;font-size:23px;margin-top:8px}.section-head,.toolbar{display:flex;justify-content:space-between;gap:12px;align-items:end;flex-wrap:wrap}.section-head p{margin:0}.actions{display:flex;gap:8px;flex-wrap:wrap}.toolbar{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0;margin:15px 0}.toolbar label{width:190px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:1250px}th,td{border-bottom:1px solid var(--line);padding:8px;text-align:left;vertical-align:middle}th{background:#f8fafc;color:#475569;white-space:nowrap;font-size:12px}td input{width:100%;min-width:75px;padding:7px}td:nth-child(3){min-width:260px}td:nth-child(2){min-width:130px}.muted{color:var(--muted)}.good{color:var(--good);font-weight:700}.bad{color:var(--bad);font-weight:700}ol{margin:0;padding-left:22px;line-height:1.9}@media(max-width:800px){.form-grid,.stats{grid-template-columns:1fr 1fr}.topbar{padding:18px}.container{margin:14px auto}.section-head{align-items:start}}
 .new-project-panel{max-width:1700px;margin:18px auto;padding:22px;background:#fff;border:1px solid #d7e0ed;border-radius:16px;box-shadow:0 4px 16px rgba(35,58,87,.08)}.new-project-panel[hidden]{display:none!important}.new-project-panel h2{margin:0 0 16px;color:#173451}.new-project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.new-project-grid label{display:flex;flex-direction:column;gap:6px;font-weight:600;color:#506b8d}.new-project-grid input{padding:11px;border:1px solid #c9d6e6;border-radius:8px;font:inherit}.new-project-actions{display:flex;gap:10px;margin-top:18px}.new-project-actions button{padding:11px 18px;border:1px solid #c9d6e6;border-radius:8px;background:#fff;font-weight:700;cursor:pointer}.new-project-actions .primary{background:#2563eb;color:#fff;border-color:#2563eb}.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px 4%;background:#173451}.topbar>div:last-child{display:flex;gap:8px;align-items:center}.topbar button{white-space:nowrap}@media(max-width:800px){.new-project-grid{grid-template-columns:1fr}.new-project-panel{margin:12px}.topbar{gap:10px;padding:18px 20px}.topbar h1{font-size:24px}.topbar p{font-size:12px}.topbar>div:last-child{flex-direction:column;align-items:stretch}}
 .rab-upload{grid-column:1/-1;margin-top:10px;padding:16px;border:1px dashed #9fb4ce;border-radius:10px;background:#f7faff}.rab-upload label{display:flex;flex-direction:column;gap:7px;font-weight:700;color:#506b8d}.rab-upload input[type=file]{padding:10px;background:#fff;border:1px solid #c9d6e6;border-radius:8px}.rab-upload small{display:block;margin-top:8px;color:#70839a}.rab-preview{margin-top:14px;max-height:280px;overflow:auto}.rab-preview table{width:100%;border-collapse:collapse;background:#fff;font-size:12px}.rab-preview th,.rab-preview td{padding:7px;border:1px solid #d7e0ed;text-align:left}.rab-preview th{background:#eaf1fa;color:#173451}.rab-preview-empty{padding:14px;color:#70839a}.rab-upload #saveRabBtn{margin-top:12px;padding:10px 16px;border:0;border-radius:8px;cursor:pointer}
