:root{--bg: #f4f6fb;--surface: #ffffff;--border: #e2e6ef;--text: #1b2333;--muted: #6b7488;--primary: #0b6bcb;--primary-dark: #0a5aac;--navy: #0f1d3d;--danger: #c0392b;--radius: 8px;--shadow: 0 1px 3px rgba(16, 24, 40, .08);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;color:var(--text)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg)}button{font-family:inherit}.layout{min-height:100vh}.topbar{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;background:var(--navy);border-bottom:1px solid var(--navy)}.topbar__brand{display:flex;align-items:center;gap:.75rem}.topbar__logo-img{height:36px;width:auto;display:block;background:#fff;padding:4px 8px;border-radius:var(--radius)}.topbar__brand strong{color:#fff}.topbar__brand small{display:block;color:#fff9;font-size:.75rem}.topbar__nav a{color:#ffffffb3;text-decoration:none;font-weight:600;padding:.4rem .6rem;border-radius:var(--radius)}.topbar__nav a:hover{color:#fff}.topbar__nav a.active{color:#fff;background:#ffffff1f}.topbar--portal{border-top:3px solid var(--primary)}.topbar--portal .topbar__brand small{color:#6ea8e6;font-weight:700}.summary-card-link{text-decoration:none;color:inherit;display:block;transition:transform .1s ease}.summary-card-link:hover .summary-card{border-color:var(--primary)}.topbar__user{display:flex;align-items:center;gap:.75rem}.topbar__user-info{text-align:right;line-height:1.2}.topbar__user-info strong{display:block;font-size:.9rem;color:#fff}.topbar__user-info small{color:#fff9;font-size:.75rem}.auth-screen{min-height:100vh;display:grid;place-items:center;background:var(--bg);padding:1.5rem}.auth-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.75rem}.auth-brand{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.4rem;margin-bottom:1.5rem}.auth-brand__logo{height:80px;width:auto;display:block}.auth-brand__name{font-size:1.75rem;font-weight:700;line-height:1.1;color:var(--text)}.auth-brand__sub{color:var(--muted);font-size:.8rem}.auth-title{font-size:1.25rem;margin:0 0 .5rem}.auth-card .btn--primary{width:100%;margin-top:.5rem}.content{max-width:1100px;margin:0 auto;padding:2rem 1.5rem}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.page-head h1{margin:0 0 .25rem}.muted{color:var(--muted)}.toolbar{display:flex;gap:.75rem;margin-bottom:1rem}.toolbar__search{flex:1}input,select{padding:.5rem .65rem;border:1px solid var(--border);border-radius:var(--radius);font-size:.95rem;background:var(--surface);color:var(--text)}input:focus,select:focus{outline:2px solid #bcd7f5;border-color:var(--primary)}input:disabled{background:#f0f2f7;color:var(--muted)}.btn{border:1px solid var(--border);background:var(--surface);color:var(--text);padding:.5rem .9rem;border-radius:var(--radius);font-weight:600;cursor:pointer;transition:background .12s ease}.btn:hover:not(:disabled){background:#f0f2f7}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn--primary:hover:not(:disabled){background:var(--primary-dark)}.btn--danger{color:var(--danger);border-color:#e7c3bd}.btn--danger:hover:not(:disabled){background:#fcefed}.btn--sm{padding:.3rem .6rem;font-size:.85rem}.btn--icon{border:none;background:none;font-size:1.5rem;line-height:1;padding:0 .25rem;color:var(--muted)}.table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.table th,.table td{text-align:left;padding:.7rem .85rem;border-bottom:1px solid var(--border);font-size:.92rem}.table thead th{background:#fafbfd;color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.03em}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover{background:#fafbfd}.table__actions{display:flex;gap:.4rem;justify-content:flex-end}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:.25rem}.table--stores{min-width:1180px}.table--stores th,.table--stores td{white-space:nowrap;padding:.5rem .6rem;font-size:.85rem}.table--stores thead th{font-size:.72rem}.table--stores th:nth-child(1),.table--stores td:nth-child(1){min-width:190px}.table--stores th:nth-child(4),.table--stores td:nth-child(4){min-width:130px}.table--stores th:nth-child(8),.table--stores td:nth-child(8){min-width:160px}.mono{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.85rem}.chip-row{display:flex;gap:.3rem;flex-wrap:wrap;align-items:center}.chip{font-size:.7rem;padding:.1rem .4rem;border-radius:4px;background:#eef0f5;color:#5a6172;font-weight:600}.chip--accent{background:#eaf2fb;color:#0a4a86}.badge{display:inline-block;padding:.15rem .55rem;border-radius:999px;font-size:.75rem;font-weight:700}.badge--active{background:#e3f4ea;color:#1e7a45}.badge--in_repair{background:#fdf3df;color:#9a6b08}.badge--retired{background:#ecedf1;color:#5a6172}.badge--lost{background:#fbe6e3;color:#b23226}.badge--with_supplier{background:#fdf3df;color:#9a6b08}.ops-list{display:flex;flex-direction:column;gap:.6rem}.ops-item{border:1px solid var(--border);border-radius:var(--radius);padding:.6rem .75rem;font-size:.9rem;background:#fafbfd}.ops-item__head{display:flex;align-items:center;gap:.5rem;margin-bottom:.2rem}.ops-form{margin-top:.75rem;padding-top:.75rem;border-top:1px dashed var(--border)}.badge--status-open{background:#eaf2fb;color:#0a4a86}.badge--status-onsite{background:#fdf3df;color:#9a6b08}.badge--status-resolved{background:#e3f4ea;color:#1e7a45}.badge--status-closed{background:#ecedf1;color:#5a6172}.badge--brand-bk{background:#fde7d6;color:#b5640a}.badge--brand-kfc{background:#fbe1de;color:#c0211a}.badge--brand-default,.badge--format-inline{background:#e6eefb;color:#1556b0}.badge--format-drivethru,.badge--distance-local{background:#e1f3e7;color:#1c7a43}.badge--distance-remote{background:#fdf0d8;color:#9a6b08}.muted--subtle{font-style:italic;opacity:.75;font-size:.85rem}.toolbar--wrap{flex-wrap:wrap}.section-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1rem;align-items:start;margin-top:1rem}.section-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem 1.25rem;box-shadow:var(--shadow)}.section-card h2{margin:0;font-size:1rem}.section-card>dl.meta{margin-top:.75rem}.section-card .page-head{align-items:center}.section-card--full{grid-column:1 / -1}.badge--prio-low{background:#ecedf1;color:#5a6172}.badge--prio-medium{background:#eaf2fb;color:#0a4a86}.badge--prio-high{background:#fdecdf;color:#9a5108}.badge--prio-critical{background:#fbe6e3;color:#b23226}.row--clickable{cursor:pointer}.detail-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:1rem;margin-top:1rem}@media(max-width:800px){.detail-grid{grid-template-columns:1fr}}.detail-grid--single{grid-template-columns:1fr}.checklist{max-height:45vh;overflow:auto;border:1px solid var(--border);border-radius:var(--radius);padding:.5rem;margin-bottom:.75rem}.checklist__item{display:flex;align-items:flex-start;gap:.5rem;padding:.35rem .25rem;text-align:left;cursor:pointer}.checklist__item input[type=checkbox]{width:auto;flex:0 0 auto;margin:.15rem 0 0}.checklist__item span{flex:1;min-width:0;line-height:1.3;overflow-wrap:anywhere}.detail-grid h3{margin:0 0 .5rem;font-size:.95rem}.detail-grid h3:not(:first-child){margin-top:1.25rem}.meta{display:grid;grid-template-columns:auto 1fr;gap:.3rem 1rem;margin:0}.meta dt{color:var(--muted);font-size:.82rem}.meta dd{margin:0;font-size:.9rem}.action-row{display:flex;gap:.5rem;margin-bottom:.6rem}.action-row select{flex:1}.timeline{list-style:none;margin:0;padding:0}.timeline__item{display:flex;gap:.75rem;padding-bottom:1rem;position:relative}.timeline__item:not(:last-child):before{content:"";position:absolute;left:5px;top:14px;bottom:0;width:2px;background:var(--border)}.timeline__dot{width:12px;height:12px;border-radius:50%;background:var(--primary);margin-top:3px;flex-shrink:0;z-index:1}.timeline__head{display:flex;align-items:center;gap:.5rem;margin-bottom:.2rem;font-size:.82rem}.alert{padding:.7rem .9rem;border-radius:var(--radius);margin-bottom:1rem;font-size:.9rem}.alert--error{background:#fbe6e3;color:#93271b;border:1px solid #f0c7c0}.alert--success{background:#e4f4ea;color:#1b6b3a;border:1px solid #bfe3cd}.alert--info{background:#eaf2fb;color:#0a4a86;border:1px solid #c4ddf6}.alert--info a{color:inherit;font-weight:700}.alert--warn{background:#fdf3df;color:#9a6b08;border:1px solid #f3e0b0}.tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--border);margin-bottom:1.25rem}.tab{border:none;background:none;padding:.6rem 1rem;font-weight:600;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.tab--active{color:var(--primary);border-bottom-color:var(--primary)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;box-shadow:var(--shadow)}.card .page-head{margin-bottom:1rem}.card h2{margin:0}.field--inline{display:flex;flex-direction:row;align-items:center;gap:.5rem}.field--inline .field__label{margin:0}textarea{padding:.5rem .65rem;border:1px solid var(--border);border-radius:var(--radius);font-family:inherit;font-size:.95rem;resize:vertical}.empty{text-align:center;padding:3rem 1rem;background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius)}.empty p{margin-top:0;color:var(--muted)}.pager{display:flex;align-items:center;gap:1rem;justify-content:center;margin-top:1.25rem}.modal__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#10182873;display:grid;place-items:center;padding:1rem;z-index:50}.modal{width:100%;max-width:480px;background:var(--surface);border-radius:var(--radius);box-shadow:0 12px 40px #10182840;max-height:90vh;overflow:auto}.modal__header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border)}.modal__header h2{margin:0;font-size:1.15rem}.modal__body{padding:1.25rem}.form{display:grid;gap:1rem}.field{display:grid;gap:.3rem}.field__label{font-size:.85rem;font-weight:600;color:var(--muted)}.field__required{color:var(--danger)}.field input,.field select{width:100%}.field__error{color:var(--danger);font-size:.8rem}.hint{color:var(--muted);font-size:.78rem}.form__actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:.5rem}.form .fieldset{margin:0;padding:.85rem 1rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.form .fieldset>legend{padding:0 .4rem;font-size:.85rem;font-weight:600;color:var(--muted)}.form .fieldset>.field+.field{margin-top:.9rem}.page-head__actions{display:flex;gap:.6rem}.import-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem}.stat{display:flex;flex-direction:column;align-items:center;padding:.75rem;border:1px solid var(--border);border-radius:var(--radius);background:#fafbfd}.stat__value{font-size:1.5rem;font-weight:700}.stat__label{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.stat--ok .stat__value{color:#1e7a45}.stat--warn .stat__value{color:#9a6b08}.stat--error .stat__value{color:var(--danger)}.cards-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}@media(max-width:800px){.cards-row{grid-template-columns:repeat(2,1fr)}}.summary-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem;display:flex;flex-direction:column;gap:.25rem}.summary-card__value{font-size:2rem;font-weight:700;line-height:1}.summary-card__label{font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.summary-card--critical{border-left:3px solid var(--danger)}.summary-card--critical .summary-card__value{color:var(--danger)}.summary-card--breached{border-left:3px solid #b23226}.summary-card--breached .summary-card__value{color:#b23226}.summary-card--ok{border-left:3px solid #1e7a45}.summary-card--ok .summary-card__value{color:#1e7a45}.filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem}.hours-row{display:grid;grid-template-columns:1fr auto auto;gap:1rem;align-items:center;padding:.85rem 0;border-bottom:1px solid var(--border)}.hours-row .field{width:90px}.toggle-row{display:flex;align-items:center;gap:1rem;padding:1rem;background:#fafbfd;border:1px solid var(--border);border-radius:var(--radius);margin:1rem 0}.switch{position:relative;display:inline-block;width:46px;height:26px;flex-shrink:0}.switch input{opacity:0;width:0;height:0}.switch__slider{position:absolute;top:0;right:0;bottom:0;left:0;cursor:pointer;background:#c7cdda;border-radius:999px;transition:background .15s ease}.switch__slider:before{content:"";position:absolute;height:20px;width:20px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:transform .15s ease}.switch input:checked+.switch__slider{background:var(--primary)}.switch input:checked+.switch__slider:before{transform:translate(20px)}.tree{max-height:50vh;overflow:auto;border:1px solid var(--border);border-radius:var(--radius);padding:.5rem}.tree__row{display:flex;align-items:center;gap:.5rem;padding:.2rem 0}.tree__toggle{border:none;background:none;cursor:pointer;color:var(--muted);width:1.2rem}.tree__bullet{width:1.2rem;text-align:center;color:var(--border)}.tree__name{font-weight:600}.tree__name--leaf{font-weight:400;color:var(--muted)}.ops-actions{display:inline-flex;gap:.3rem;margin-left:auto}.mapping{margin-top:.5rem}.label{display:flex;flex-direction:column;align-items:center;gap:.5rem;width:260px;margin:0 auto;padding:1rem;border:1px solid var(--border);border-radius:var(--radius);background:#fff}.label__brand{font-size:.7rem;color:var(--muted);letter-spacing:.02em}.label__tag{font-size:1.35rem;font-weight:700;letter-spacing:.05em}.label__meta{font-size:.78rem;color:var(--muted);text-align:center}@media print{body *{visibility:hidden}.printable-label,.printable-label *{visibility:visible}.printable-label{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.label{border:none}.no-print{display:none!important}}
