:root{--ink:#17201d;--muted:#69736f;--line:#dfe5e2;--paper:#f5f7f6;--green:#0c8b5c;--green-dark:#087149;--red:#c23b3b;--white:#fff}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.5 Inter,system-ui,-apple-system,sans-serif}header{height:68px;background:var(--white);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1180px)/2))}.brand{font-size:21px;font-weight:850;color:var(--ink);text-decoration:none;letter-spacing:-.04em}.brand span{color:var(--green);font-weight:650}.user{display:flex;gap:14px;align-items:center;color:var(--muted)}.user form{display:inline}.link{border:0;background:none;color:var(--green);cursor:pointer}main{max-width:1180px;margin:auto;padding:52px 24px 80px}.hero{max-width:760px;margin-bottom:34px}.eyebrow{color:var(--green);font-weight:750;text-transform:uppercase;letter-spacing:.12em;font-size:12px;margin:0 0 10px}h1{font-size:clamp(36px,5vw,62px);line-height:1.03;letter-spacing:-.045em;margin:0 0 16px}h2{letter-spacing:-.025em}.lead{font-size:18px;color:var(--muted);max-width:720px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.type-card{position:relative;min-height:170px;background:var(--white);border:1px solid var(--line);border-radius:18px;padding:24px;color:var(--ink);text-decoration:none;transition:.15s}.type-card:hover{border-color:var(--green);transform:translateY(-2px);box-shadow:0 14px 35px #183b2d12}.type-card h2{font-size:20px;line-height:1.2;margin:25px 0 8px}.type-card p{color:var(--muted);margin:0}.number{position:absolute;top:20px;right:20px;color:#9aa6a1;font-weight:700}.panel{background:var(--white);border:1px solid var(--line);border-radius:20px;padding:28px}.login-card{min-height:calc(100vh - 200px);display:grid;grid-template-columns:1.2fr .8fr;gap:70px;align-items:center}.login-card form{display:grid;gap:18px}.login-card h2{margin:0}.alert{padding:12px;border-radius:10px;background:#fff0f0;color:var(--red)}label{display:grid;gap:7px;font-weight:650}input,select{width:100%;border:1px solid #cbd4d0;border-radius:10px;padding:12px;background:#fff;font:inherit}input:focus,select:focus{outline:3px solid #0c8b5c20;border-color:var(--green)}button{font:inherit}.primary,.secondary{border:0;border-radius:11px;padding:13px 20px;font-weight:750;cursor:pointer}.primary{background:var(--green);color:#fff}.primary:hover{background:var(--green-dark)}.secondary{background:#e7eeeb;color:var(--ink)}small{color:var(--muted)}.back{display:inline-block;margin-bottom:28px;color:var(--green);text-decoration:none}.narrow{max-width:760px}.upload{margin-top:30px}.drop{min-height:210px;border:2px dashed #b8c5c0;border-radius:16px;align-content:center;text-align:center;margin-bottom:18px;cursor:pointer}.drop strong{font-size:20px}.drop span{font-weight:400;color:var(--muted)}.drop input{width:auto;margin:14px auto 0;border:0}.mapping-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;background:#fff;border:1px solid var(--line);padding:22px;border-radius:18px}.mapping-grid b{color:var(--red)}.actions{display:flex;justify-content:flex-end;gap:10px;margin:20px 0 42px}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:14px}table{border-collapse:collapse;width:100%;min-width:760px}th,td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{background:#f1f4f3;font-size:12px;text-transform:uppercase;color:var(--muted)}.good{color:var(--green);font-weight:700}.bad{color:var(--red);font-weight:650}.history{margin-top:50px}.status{background:#e9efec;border-radius:50px;padding:5px 9px}.summary{display:flex;gap:14px;margin:28px 0 42px}.summary div{min-width:160px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;display:grid}.summary strong{font-size:32px}.summary span{color:var(--muted)}.good-box strong{color:var(--green)}.bad-box strong{color:var(--red)}
.sheet-picker{max-width:420px;margin:20px 0}.customer-panel{display:grid;grid-template-columns:1.2fr .8fr;gap:28px;align-items:end;margin-top:18px;background:#fff;border:1px solid var(--line);padding:22px;border-radius:18px}.customer-panel h2{margin:0 0 6px}.customer-panel p{margin:0;color:var(--muted)}button:disabled{opacity:.5;cursor:not-allowed}
.import-section{margin-top:34px}.section-title{font-size:25px;margin:0 0 14px}
.mapping-legend{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;margin:22px 0 16px;padding:16px 18px;background:#fff;border:1px solid var(--line);border-radius:14px}.mapping-legend>strong{width:100%;font-size:16px}.mapping-legend span{display:flex;align-items:center;gap:7px;color:var(--muted)}.mapping-legend span b{color:var(--ink)}.legend-dot{width:12px;height:12px;border-radius:50%;display:inline-block;flex:none}.legend-dot.matched{background:#25a66f}.legend-dot.required-missing{background:#d84b4b}.legend-dot.optional-missing{background:#d5a72f}.mapping-field{position:relative;padding:12px;border:1px solid transparent;border-radius:12px;transition:.15s}.mapping-field.matched{background:#effaf5;border-color:#9bd7bd}.mapping-field.required-missing{background:#fff1f1;border-color:#efaaaa}.mapping-field.optional-missing{background:#fff9e8;border-color:#e7ce84}.mapping-field.matched>span:after,.mapping-field.required-missing>span:after,.mapping-field.optional-missing>span:after{float:right;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.mapping-field.matched>span:after{content:"Найдено";color:#087149}.mapping-field.required-missing>span:after{content:"Обязательно";color:#c23b3b}.mapping-field.optional-missing>span:after{content:"Не выбрано";color:#997311}
.directory-panel{margin:18px 0 0;padding:22px;background:#fff;border:1px solid var(--line);border-radius:18px}.directory-panel h2{margin:0 0 6px}.directory-panel>p:not(.eyebrow){color:var(--muted)}.directory-defaults{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:20px 0}.directory-table{margin-top:18px}.directory-resolved td{background:#f3fbf7}.directory-unresolved td{background:#fff2f2}.directory-table select{min-width:240px}
.coordinate-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.coordinate-fields input{min-width:125px}
.station-confirm{margin-top:10px}.manual-coordinates{margin-top:10px;color:var(--muted)}.manual-coordinates summary{cursor:pointer;font-weight:650}.station-result{color:var(--ink)}.station-result>b{color:var(--green)}
.import-progress{margin:0 0 36px;padding:24px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 14px 35px #183b2d10}.progress-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.progress-heading h2{margin:0}.progress-heading>strong{font-size:30px;color:var(--green)}.progress-track{height:14px;margin:20px 0 14px;overflow:hidden;background:#e4ebe8;border-radius:999px}.progress-fill{height:100%;background:linear-gradient(90deg,var(--green),#31b67e);border-radius:inherit;transition:width .35s ease}.progress-stats{display:flex;flex-wrap:wrap;gap:10px 24px}.import-progress>p{margin:12px 0 0;color:var(--muted)}
@media(max-width:850px){.grid,.mapping-grid{grid-template-columns:1fr 1fr}.login-card{grid-template-columns:1fr;gap:28px}main{padding-top:34px}}@media(max-width:560px){.grid,.mapping-grid{grid-template-columns:1fr}header{padding:0 16px}.user{font-size:12px}main{padding:28px 16px 60px}.summary{display:grid;grid-template-columns:1fr 1fr}.summary div:first-child{grid-column:1/-1}}
