:root{--brand: #f97316;--brand-2: #ff8a3c;--brand-deep: #c2410c;--ink: #14343d;--ink-2: #1d5563;--c-bg: #f4f5f7;--c-surface: #ffffff;--c-text: #1a2332;--c-hint: #6b7684;--c-field: #eef0f3;--c-border: #e4e7ec;--bg: var(--tg-theme-bg-color, var(--c-bg));--surface: var(--tg-theme-secondary-bg-color, var(--c-surface));--text: var(--tg-theme-text-color, var(--c-text));--hint: var(--tg-theme-hint-color, var(--c-hint));--field: var(--c-field);--border: var(--c-border);--link: var(--tg-theme-link-color, var(--brand));--btn: var(--tg-theme-button-color, var(--brand));--btn-text: var(--tg-theme-button-text-color, #ffffff);--ok: #16a34a;--warn: #d97706;--danger: #dc2626;--info: #2563eb;--violet: #7c3aed;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .05);--shadow-md: 0 1px 3px rgba(16, 24, 40, .07), 0 6px 16px rgba(16, 24, 40, .06);--shadow-lg: 0 8px 28px rgba(16, 24, 40, .14);--radius: 16px;--radius-sm: 12px;--tabbar-h: 62px}@media (prefers-color-scheme: dark){:root{--c-bg: #10161b;--c-surface: #1b232b;--c-text: #e8edf2;--c-hint: #8a97a5;--c-field: #232e37;--c-border: #2d3a44;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 1px 3px rgba(0, 0, 0, .4), 0 6px 16px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 28px rgba(0, 0, 0, .5)}}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:1.45;-webkit-tap-highlight-color:transparent}#app{min-height:100vh;min-height:100dvh}a{color:var(--link);text-decoration:none}.page{padding:12px 14px calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px) + 28px);max-width:960px;margin:0 auto}.page--bare{padding-bottom:32px}.page-title{position:sticky;top:0;z-index:900;margin:-12px -14px 14px;padding:14px 14px 12px;font-size:21px;font-weight:800;letter-spacing:-.01em;background:color-mix(in srgb,var(--bg) 82%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.muted{color:var(--hint)}.section-title{font-size:17px;font-weight:700;margin:22px 2px 10px}.card{position:relative;background:var(--surface);border-radius:var(--radius);padding:14px 16px;margin-bottom:12px;box-shadow:var(--shadow-md)}.card-title{font-weight:700;font-size:16px;margin-bottom:6px;display:flex;align-items:center;flex-wrap:wrap;gap:6px}.card-title a{color:var(--text)}.card-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:14px;padding:3px 0}.card-row .muted{flex-shrink:0}.card-row>:last-child{text-align:right}.card--urg-green,.card--urg-yellow,.card--urg-red{padding-left:20px}.card--urg-green:before,.card--urg-yellow:before,.card--urg-red:before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:5px;border-radius:0 4px 4px 0}.card--urg-green:before{background:var(--ok)}.card--urg-yellow:before{background:var(--warn)}.card--urg-red:before{background:var(--danger)}.row-overdue{box-shadow:var(--shadow-md),inset 0 0 0 1.5px color-mix(in srgb,var(--danger) 55%,transparent)}.urg-dot{display:inline-block;width:9px;height:9px;border-radius:50%;flex-shrink:0}.urg-dot--green{background:var(--ok)}.urg-dot--yellow{background:var(--warn)}.urg-dot--red{background:var(--danger)}.field{margin-bottom:14px}.field>label{display:block;font-size:13px;font-weight:600;color:var(--hint);margin-bottom:6px}.input,select.input,textarea.input{width:100%;min-height:46px;padding:11px 14px;font-size:16px;color:var(--text);background:var(--field);border:1.5px solid transparent;border-radius:var(--radius-sm);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;font-family:inherit;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}select.input{background-image:linear-gradient(45deg,transparent 50%,var(--hint) 50%),linear-gradient(135deg,var(--hint) 50%,transparent 50%);background-position:calc(100% - 19px) 50%,calc(100% - 14px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:36px}textarea.input{min-height:76px;resize:vertical}.input:focus{border-color:var(--brand);background:var(--surface);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 18%,transparent)}.input::placeholder{color:color-mix(in srgb,var(--hint) 70%,transparent)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:48px;padding:12px 20px;font-size:16px;font-weight:700;border:none;border-radius:14px;background:linear-gradient(180deg,var(--brand-2),var(--brand));color:#fff;cursor:pointer;font-family:inherit;box-shadow:0 4px 14px color-mix(in srgb,var(--brand) 35%,transparent);transition:transform .12s ease,box-shadow .15s ease,filter .15s ease}.btn:hover{filter:brightness(1.04)}.btn:active{transform:scale(.97);box-shadow:0 2px 8px color-mix(in srgb,var(--brand) 30%,transparent)}.btn:focus-visible,.input:focus-visible,.chip:focus-visible,a:focus-visible{outline:2.5px solid color-mix(in srgb,var(--brand) 70%,transparent);outline-offset:2px}.btn:disabled{opacity:.55;cursor:default;box-shadow:none}.btn--block{width:100%}.btn--secondary{background:var(--surface);color:var(--text);border:1.5px solid var(--border);box-shadow:var(--shadow-sm)}.btn--secondary:active{background:var(--field)}.btn--danger{background:linear-gradient(180deg,#ef4444,var(--danger));color:#fff;box-shadow:0 4px 14px #dc26264d}.btn--ok{background:linear-gradient(180deg,#22c55e,var(--ok));color:#fff;box-shadow:0 4px 14px #16a34a4d}.btn-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.btn-row .btn{flex:1 1 auto}.seg{display:flex;gap:8px;flex-wrap:wrap}.seg label{flex:1 1 auto}.seg input{position:absolute;opacity:0;pointer-events:none}.seg .chip{position:relative;display:flex;align-items:center;justify-content:center;min-height:46px;padding:10px 14px;border-radius:var(--radius-sm);background:var(--surface);border:1.5px solid var(--border);font-weight:600;font-size:15px;cursor:pointer;text-align:center;transition:border-color .15s ease,background .15s ease,transform .12s ease,box-shadow .15s ease}.seg .chip:active{transform:scale(.97)}.seg input:checked+.chip{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 9%,var(--surface));box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 14%,transparent);color:var(--brand-deep)}.seg input:checked+.chip:before{content:"✓ ";font-weight:800}.seg input:focus-visible+.chip{outline:2.5px solid color-mix(in srgb,var(--brand) 70%,transparent);outline-offset:2px}.seg .chip--green{border-left-width:6px;border-left-color:var(--ok)}.seg input:checked+.chip--green{border-color:var(--ok);background:color-mix(in srgb,var(--ok) 10%,var(--surface));box-shadow:0 0 0 3px color-mix(in srgb,var(--ok) 14%,transparent);color:var(--ok)}.seg .chip--yellow{border-left-width:6px;border-left-color:var(--warn)}.seg input:checked+.chip--yellow{border-color:var(--warn);background:color-mix(in srgb,var(--warn) 12%,var(--surface));box-shadow:0 0 0 3px color-mix(in srgb,var(--warn) 16%,transparent);color:var(--warn)}.seg .chip--red{border-left-width:6px;border-left-color:var(--danger)}.seg input:checked+.chip--red{border-color:var(--danger);background:color-mix(in srgb,var(--danger) 9%,var(--surface));box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 14%,transparent);color:var(--danger)}.check{display:flex;align-items:center;gap:10px;min-height:46px;cursor:pointer;font-weight:600}.check input{width:22px;height:22px;accent-color:var(--brand)}.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap;background:var(--field);color:var(--hint)}.badge--green{background:color-mix(in srgb,var(--ok) 13%,var(--surface));color:var(--ok)}.badge--yellow{background:color-mix(in srgb,var(--warn) 15%,var(--surface));color:var(--warn)}.badge--red{background:color-mix(in srgb,var(--danger) 11%,var(--surface));color:var(--danger)}.badge--blue{background:color-mix(in srgb,var(--info) 11%,var(--surface));color:var(--info)}.badge--violet{background:color-mix(in srgb,var(--violet) 12%,var(--surface));color:var(--violet)}.badge--orange{background:color-mix(in srgb,var(--brand) 13%,var(--surface));color:var(--brand-deep)}.badge--grey{background:var(--field);color:var(--hint)}.table-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-md);overflow:hidden;margin-bottom:12px}.resp-table{width:100%;border-collapse:collapse;font-size:14px}.resp-table th,.resp-table td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--border);vertical-align:top}.resp-table tr:last-child td{border-bottom:none}.resp-table th{color:var(--hint);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.04em;background:color-mix(in srgb,var(--field) 60%,var(--surface))}.resp-cards{display:none}@media (max-width: 760px){.table-card--collapse{background:transparent;box-shadow:none;overflow:visible}.table-card--collapse .resp-table{display:none}.resp-cards{display:block}}.tabbar{position:fixed;left:0;right:0;bottom:0;height:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);display:flex;background:color-mix(in srgb,var(--surface) 82%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 -2px 16px #10182814;z-index:1000}.tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:44px;font-size:11px;font-weight:600;color:var(--hint);transition:color .15s ease,transform .12s ease}.tabbar a:active{transform:scale(.94)}.tabbar a .tab-ico{font-size:22px;line-height:1;filter:grayscale(.5);opacity:.8;transition:filter .15s ease,opacity .15s ease}.tabbar a.router-link-active{color:var(--brand)}.tabbar a.router-link-active .tab-ico{filter:none;opacity:1}.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin-bottom:12px}.alert{display:flex;align-items:flex-start;gap:8px;padding:12px 14px;border-radius:var(--radius-sm);margin-bottom:14px;font-weight:600;font-size:15px;box-shadow:var(--shadow-sm)}.alert--error{background:color-mix(in srgb,var(--danger) 10%,var(--surface));color:var(--danger)}.alert--error:before{content:"⚠️"}.alert--ok{background:color-mix(in srgb,var(--ok) 10%,var(--surface));color:var(--ok)}.alert--ok:before{content:"✅"}.alert--warn{background:color-mix(in srgb,var(--warn) 14%,var(--surface));color:var(--warn);border:1.5px solid color-mix(in srgb,var(--warn) 45%,transparent)}.alert--warn:before{content:"⚠️"}.empty{text-align:center;color:var(--hint);padding:36px 16px;font-weight:600}.empty:before{content:"📭";display:block;font-size:40px;margin-bottom:8px}.spinner{width:34px;height:34px;border:3.5px solid var(--border);border-top-color:var(--brand);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 12px}@keyframes spin{to{transform:rotate(360deg)}}.app-loading{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--hint)}.menu-list{display:flex;flex-direction:column;gap:10px}.menu-list a,.menu-list button{display:flex;align-items:center;min-height:54px;padding:14px 16px;border-radius:var(--radius);background:var(--surface);color:var(--text);font-size:16px;font-weight:700;border:none;cursor:pointer;text-align:left;font-family:inherit;box-shadow:var(--shadow-sm);transition:transform .12s ease,box-shadow .15s ease}.menu-list a:active,.menu-list button:active{transform:scale(.98);box-shadow:none}.leaflet-map{width:100%;height:calc(100dvh - var(--tabbar-h) - 60px);min-height:320px;border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:0}.calc-hero{background:linear-gradient(150deg,var(--ink) 0%,var(--ink-2) 100%);color:#fff;padding:36px 20px 56px;text-align:center;border-radius:0 0 28px 28px;position:relative;overflow:hidden}.calc-hero:after{content:"";position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--brand) 35%,transparent),transparent 70%);pointer-events:none}.calc-hero .hero-ico{font-size:44px;line-height:1;margin-bottom:10px}.calc-hero h1{margin:0 0 8px;font-size:26px;font-weight:800;letter-spacing:-.01em}.calc-hero p{margin:0;color:#ffffffbf;font-size:15px;font-weight:500}.calc-body{margin-top:-32px;position:relative;z-index:1}.price-card{text-align:center;padding:20px 16px}.price-big{font-size:38px;font-weight:800;color:var(--brand);letter-spacing:-.02em;line-height:1.1;margin:4px 0}.features{display:grid;gap:10px;margin-top:22px}.feature{display:flex;align-items:center;gap:12px;background:var(--surface);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow-sm)}.feature .f-ico{font-size:24px;flex-shrink:0}.feature b{display:block;font-size:15px}.feature span{font-size:13px;color:var(--hint)}.auth-wrap{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 16px}.auth-logo{text-align:center;margin-bottom:20px}.auth-logo .logo-ico{display:inline-flex;align-items:center;justify-content:center;width:72px;height:72px;border-radius:22px;background:linear-gradient(150deg,var(--ink),var(--ink-2));font-size:36px;box-shadow:var(--shadow-lg);margin-bottom:12px}.auth-logo h1{margin:0;font-size:24px;font-weight:800}.auth-logo p{margin:4px 0 0;color:var(--hint);font-size:14px}.auth-card{width:100%;max-width:420px;background:var(--surface);border-radius:20px;padding:22px 18px;box-shadow:var(--shadow-lg)}@media print{.tabbar,.no-print,.filters,.btn,.btn-row{display:none!important}body{background:#fff;color:#000}.page{padding:0;max-width:none}.page-title{position:static;background:none;-webkit-backdrop-filter:none;backdrop-filter:none;margin:0 0 12px;padding:0}.card,.table-card{box-shadow:none;border:none;padding:8px 0;background:#fff}.card--urg-green:before,.card--urg-yellow:before,.card--urg-red:before{display:none}.table-card--collapse{background:#fff;overflow:visible}.table-card--collapse .resp-table,.resp-table{display:table!important}.resp-cards{display:none!important}.badge{border:1px solid #999;color:#000;background:#fff}}
