:root{--blue:#3491c8;--blue-dark:#176f99;--dark:#17364a;--ink:#1d2935;--muted:#6b7b88;--line:#dfe6eb;--bg:#f4f7f9;--white:#fff}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--ink);background:var(--bg)}
a{color:#147cad;text-decoration:none}
button,.button{border:0;border-radius:8px;background:var(--blue);color:white;padding:10px 16px;font-weight:600;cursor:pointer;display:inline-block}.compact{padding:7px 11px;font-size:12px}
.secondary{background:#eaf3f8;color:#176f99}.link{background:none;color:#bdd7e6;padding:12px 20px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
aside{position:fixed;inset:0 auto 0 0;width:260px;background:var(--dark);color:white;padding:23px 16px 18px;display:flex;flex-direction:column;overflow-y:auto}
.brand{padding:0 2px 20px;text-align:center}.brand img{display:block;width:100%;height:auto;margin:0 auto}.product-name{font-size:18px;font-weight:700;line-height:1.2;margin:12px 0 3px}.brand span{display:block;font-size:11px;line-height:1.4;color:#bdd7e6;margin:0 0 22px}
nav{flex:1}nav>a,nav details a{display:block;color:#e9f5fb;padding:10px 12px;border-radius:7px;margin:2px 0;font-size:14px}nav a:hover,nav a.active{background:#28556e;color:#fff}
.nav-group{border-top:1px solid #ffffff18;margin-top:7px;padding-top:7px}.nav-group summary{position:relative;list-style:none;color:#e9f5fb;padding:10px 30px 10px 12px;border-radius:7px;font-size:14px;font-weight:600;cursor:pointer;user-select:none}.nav-group summary::-webkit-details-marker{display:none}.nav-group summary::after{content:'›';position:absolute;right:12px;top:7px;font-size:21px;line-height:1;transition:transform .18s ease}.nav-group[open] summary::after{transform:rotate(90deg)}.nav-group summary:hover{background:#244e66}.submenu{padding:2px 0 4px 8px}.submenu a{color:#cfe4ef;font-size:13px;padding:8px 12px}
.app-version{color:#82afc7;text-align:right;font-size:11px;padding:4px}
main{margin-left:260px;padding:28px 36px;max-width:1500px}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}header h1{margin:3px 0;font-size:27px}header small{color:var(--muted)}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:22px}.cards article,.panel{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:20px;box-shadow:0 2px 7px #17364a0a}.cards span{color:var(--muted);display:block}.cards strong{font-size:32px;color:var(--dark)}
.panel{margin-bottom:20px}.panel-title,.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.toolbar form{display:flex;gap:8px}.toolbar-actions{display:flex;gap:8px}.panel h2{font-size:18px;margin-top:0}
table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:12px;text-transform:uppercase;color:var(--muted)}td small{display:block;color:var(--muted);margin-top:4px}.table-panel{overflow:auto}.table-note{color:var(--muted);font-size:12px;text-align:right;margin-bottom:0}
.badge{display:inline-block;background:#edf1f4;color:#536571;padding:4px 8px;border-radius:999px;font-size:12px;white-space:nowrap}.badge.info{background:#e6f3fa;color:#167ba8}.badge.success{background:#e5f5ec;color:#26784a}.badge.warning{background:#fff3d7;color:#8a6418}.badge.danger{background:#fde8e8;color:#a33131}.missing{color:#8797a3;font-style:italic}.pending-dot{display:inline-grid;place-items:center;width:17px;height:17px;margin-left:6px;border-radius:50%;background:#fff3d7;color:#8a6418;font-size:11px;font-weight:700}.muted{color:var(--muted);font-size:12px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}label{display:grid;gap:7px;font-size:13px;font-weight:600}input,select,textarea{width:100%;border:1px solid #cbd7de;border-radius:7px;padding:10px;background:white;font:inherit}input:disabled{background:#edf2f5;color:#526671}textarea{min-height:90px}.wide{grid-column:1/-1}.actions{text-align:right}.actions a{margin-right:18px}.checkbox{display:flex;align-items:center;gap:9px}.checkbox input{width:auto}.form-help{color:var(--muted);font-size:13px;margin:0}
.large-text{min-height:180px}.inline-action{display:inline;margin-left:12px}.inline-action input{display:none}.text-button{background:none;color:var(--blue-dark);padding:0;font-weight:500}.danger-text{color:#a33131}
.columns{display:grid;grid-template-columns:1fr 1fr;gap:20px}.company-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.company-summary small,.item span,.contact-card span{display:block;color:var(--muted);font-size:12px;margin:4px 0}.item{border-bottom:1px solid var(--line);padding:10px 0}.mini-form{display:grid;gap:8px;margin-top:16px;background:#f7fafb;padding:14px;border-radius:8px}.contact-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.contact-card{display:grid;grid-template-columns:1fr 1.2fr;gap:18px;padding:13px;border:1px solid var(--line);border-radius:8px;background:#fafcfd}.inline-create{margin-top:16px}.inline-create summary{color:var(--blue-dark);font-weight:600;cursor:pointer}.table-footer{display:flex;justify-content:space-between;align-items:center;margin-top:14px}.select-cell{width:34px}.select-cell input{width:auto}.task-item{border-left:3px solid var(--blue);padding-left:12px}
.empty{text-align:center;color:var(--muted);padding:25px}.placeholder{max-width:720px;padding:36px}.placeholder h2{font-size:24px;margin:8px 0}.placeholder p{color:var(--muted);line-height:1.6}.eyebrow{color:var(--blue-dark);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em}
body.guest{min-height:100vh;display:grid;place-items:center;padding:30px 15px}
body.guest main{width:100%;max-width:none;margin:0;padding:0}
.login{width:min(500px,100%);margin:0 auto;background:white;border-radius:14px;padding:38px;box-shadow:0 12px 40px #17364a20}.login-logo{display:block;width:min(100%,440px);height:auto;margin:0 auto 24px}.login form{display:grid;gap:17px;margin-top:8px}.alert{background:#fff1f1;color:#a33131;padding:10px;border-radius:7px}
.notice{padding:13px 16px;border-radius:8px;margin-bottom:18px}.success-box{background:#e5f5ec;color:#26784a}.upload-form{display:grid;grid-template-columns:1.2fr 1fr auto;gap:14px;align-items:end}.import-intro p,.mapping-head span{color:var(--muted)}.mapping-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.mapping-head span{display:block;font-size:13px;margin-top:4px}.mapping-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.header-choice{margin-bottom:20px}.sticky-actions{position:sticky;bottom:0;background:var(--bg);padding:14px 0}.error-panel{max-width:620px}.error-panel h2{color:#a33131}
@media(max-width:900px){aside{position:static;width:auto}.brand{max-width:260px;padding-bottom:10px}nav{display:block}.nav-group{display:block}.app-version{text-align:left}main{margin:0;padding:20px}.cards,.columns,.company-summary,.mapping-grid{grid-template-columns:1fr 1fr}.upload-form{grid-template-columns:1fr}}
@media(max-width:600px){.cards,.columns,.company-summary,.form-grid,.mapping-grid{grid-template-columns:1fr}.wide{grid-column:auto}.toolbar,.mapping-head{align-items:stretch;gap:10px;flex-direction:column}.toolbar form,.toolbar-actions{flex-direction:column}table{display:block;overflow:auto}.login{padding:26px 22px}}
.warning-box{background:#fff3d7;color:#7a5918}.form-section-title{margin:8px 0 0;border-bottom:1px solid var(--line);padding-bottom:8px}.status-panel{display:flex;justify-content:space-between;align-items:center}.danger-button{background:#b33b3b}
.primary-contact{margin-left:7px;background:#e6f3fa;color:#167ba8;font-weight:700}.danger-zone{display:flex;justify-content:space-between;align-items:center;border-color:#efcaca;background:#fffafa}.danger-zone p{margin:5px 0 0;color:var(--muted);font-size:13px}

.address-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}.address-fields[hidden]{display:none}.company-address-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.company-address-summary small{display:block;color:var(--muted);font-size:12px;margin:4px 0}@media(max-width:900px){.company-address-summary{grid-template-columns:1fr 1fr}}@media(max-width:600px){.address-fields,.company-address-summary{grid-template-columns:1fr}.address-fields .wide{grid-column:auto}}
.service-options{margin:0;border:1px solid #cbd7de;border-radius:8px;padding:14px 16px}.service-options legend{padding:0 6px;font-size:13px;font-weight:600}.service-options>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 24px}.service-options small{display:block;color:var(--muted);margin-top:12px}.service-options .checkbox{font-weight:500}@media(max-width:600px){.service-options>div{grid-template-columns:1fr}}
