:root{--navy:#17233f;--navy2:#223253;--orange:#ed7625;--ink:#1d2637;--muted:#687386;--line:#dfe4eb;--bg:#f3f5f8;--white:#fff;--danger:#b42318;--shadow:0 12px 35px rgba(22,35,63,.08)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,"Segoe UI",Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}
.login-view{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,var(--navy),#2b426d)}.login-card{width:min(430px,100%);background:#fff;border-radius:20px;padding:42px;box-shadow:0 28px 80px rgba(0,0,0,.28)}.login-logo{width:190px;height:70px;object-fit:contain;object-position:left}.eyebrow{color:var(--orange);font-size:.73rem;font-weight:800;letter-spacing:.13em;margin:12px 0 5px}.login-card h1,.page-heading h1{margin:0;color:var(--navy)}.muted,.page-heading p{color:var(--muted)}label{display:flex;flex-direction:column;gap:6px;font-size:.83rem;font-weight:700;color:#445066}.login-card label{margin-top:18px}.login-card button{width:100%;margin-top:24px}
input,select,textarea{width:100%;border:1px solid #cdd4de;border-radius:9px;background:#fff;color:var(--ink);padding:10px 12px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--orange);box-shadow:0 0 0 3px rgba(237,118,37,.12)}textarea{resize:vertical}.optional{font-weight:400;color:#8892a3}
.primary,.secondary{border:0;border-radius:9px;padding:10px 17px;font-weight:750}.primary{background:var(--orange);color:#fff}.primary:hover{background:#d9651d}.secondary{background:#fff;border:1px solid #cfd6e0;color:var(--navy)}.secondary:hover{border-color:#9da8b7}.link-button,.danger-link{border:0;background:transparent}.link-button{color:#fff}.danger-link{color:var(--danger)}
.topbar{height:72px;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1280px)/2));box-shadow:0 2px 12px rgba(0,0,0,.18)}.brand{display:flex;align-items:center;gap:14px}.brand img{width:112px;height:45px;object-fit:contain;background:#fff;border-radius:5px;padding:4px}.brand div{display:flex;flex-direction:column}.brand span{font-size:.76rem;color:#b8c2d7}.userbox{display:flex;align-items:center;gap:18px;font-size:.85rem}.tabs{background:#fff;border-bottom:1px solid var(--line);padding:0 max(24px,calc((100vw - 1280px)/2));display:flex;gap:24px}.tab{border:0;border-bottom:3px solid transparent;background:transparent;padding:16px 2px 13px;color:#657085;font-weight:750}.tab.active{color:var(--navy);border-color:var(--orange)}
main{max-width:1280px;margin:0 auto;padding:30px 24px 80px}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}.page-heading p:last-child{margin:5px 0 0}.card{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:22px;margin-bottom:18px}.project-grid,.factor-grid,.line-grid{display:grid;gap:16px}.project-grid{grid-template-columns:1fr 1fr}.project-grid label:last-child{grid-column:1/-1}.factors summary{font-weight:800;color:var(--navy);cursor:pointer}.factor-grid{grid-template-columns:repeat(4,1fr);margin-top:18px}
.equipment-line{padding:0;overflow:hidden}.equipment-line>header{background:#f8f9fb;border-bottom:1px solid var(--line);padding:15px 20px;display:flex;align-items:center;justify-content:space-between}.equipment-line>header>div{display:flex;align-items:center;gap:10px}.equipment-line h2{font-size:1.03rem;margin:0;color:var(--navy)}.line-number{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:var(--navy);color:#fff;font-size:.78rem;font-weight:800}.line-grid{grid-template-columns:1.1fr 1.5fr .7fr .9fr;padding:20px}.line-grid .wide{grid-column:span 3}.systems-heading{display:flex;justify-content:space-between;align-items:center;padding:0 20px 10px;color:var(--navy)}.systems-heading span{font-size:.78rem;color:var(--muted)}.line-systems{display:grid;grid-template-columns:repeat(3,1fr);gap:8px 12px;padding:0 20px 20px}.system-row{display:grid;grid-template-columns:auto 1fr 122px;align-items:center;gap:7px;border:1px solid var(--line);border-radius:8px;padding:9px;background:#fbfcfd}.system-row input{width:auto}.system-row span{font-size:.79rem;font-weight:650}.system-row select{padding:6px;font-size:.75rem}.line-result{border-top:1px solid var(--line);background:#fafbfc;padding:14px 20px;display:flex;gap:28px;justify-content:flex-end;color:var(--muted);font-size:.82rem}.line-result strong{color:var(--navy);font-size:1rem;margin-left:6px}
.summary-card{position:sticky;bottom:15px;background:var(--navy);color:#fff;border-radius:14px;padding:18px 22px;box-shadow:0 15px 45px rgba(23,35,63,.28);display:flex;justify-content:space-between;align-items:center;z-index:5}.summary-card>div:first-child{display:grid}.summary-card span{font-size:.76rem;color:#bbc5d9;text-transform:uppercase;letter-spacing:.08em}.summary-card strong{font-size:1.65rem}.summary-card small{color:#b8c2d6}.actions{display:flex;gap:10px}.result{background:#fff;border-left:4px solid #198754;padding:18px;margin-top:16px;border-radius:8px}.result a{color:var(--navy);font-weight:800}.notice{padding:14px 18px;border-radius:9px;margin-bottom:18px}.warning{background:#fff3cd;border:1px solid #ffe69c}.error-text,.error{color:var(--danger)}.success{color:#137a43}.toast{position:fixed;top:18px;right:18px;z-index:50;background:#19243e;color:#fff;padding:13px 18px;border-radius:8px;box-shadow:var(--shadow);opacity:0;transform:translateY(-10px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:none}.toast.error{background:#8f1d16}
.table-wrap{overflow:auto;padding:0}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:13px 15px;border-bottom:1px solid var(--line);font-size:.82rem}th{background:#f7f8fa;color:#566176;text-transform:uppercase;font-size:.69rem;letter-spacing:.05em}.admin-card{max-width:860px}.admin-card h2{margin-top:0}.admin-card button{margin-top:15px}.user-form{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:12px;align-items:end}.check-label{flex-direction:row;align-items:center;padding-bottom:10px;white-space:nowrap}.check-label input{width:auto}.users-list{margin-top:18px;display:grid;gap:7px}.user-row{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:8px;font-size:.82rem}.install-body{min-height:100vh;display:grid;place-items:center}.install-card{width:min(560px,calc(100% - 32px));background:#fff;border-radius:15px;padding:32px;box-shadow:var(--shadow)}.install-card label{margin:14px 0}.install-card button{width:100%;margin-top:10px}
@media(max-width:900px){.factor-grid{grid-template-columns:repeat(2,1fr)}.line-grid{grid-template-columns:1fr 1fr}.line-grid .wide{grid-column:1/-1}.line-systems{grid-template-columns:1fr 1fr}.user-form{grid-template-columns:1fr 1fr}}
@media(max-width:620px){main{padding:20px 12px 100px}.topbar{padding:0 12px}.brand div,.userbox span{display:none}.project-grid,.factor-grid,.line-grid,.line-systems{grid-template-columns:1fr}.project-grid label:last-child,.line-grid .wide{grid-column:auto}.page-heading{align-items:flex-start;flex-direction:column}.summary-card{align-items:stretch;flex-direction:column;gap:14px}.actions button{flex:1}.systems-heading{align-items:flex-start;flex-direction:column;gap:4px}.login-card{padding:30px 24px}}
