:root { color-scheme: light; --ink:#13231f; --muted:#66746f; --line:#dfe7e3; --paper:#fff; --canvas:#f3f6f4; --brand:#087f5b; --brand-dark:#075e45; --accent:#d9f4e9; }
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; background:var(--canvas); color:var(--ink); font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
a { color:inherit; }
.topbar { min-height:72px; display:flex; align-items:center; justify-content:space-between; padding:0 5vw; background:var(--paper); border-bottom:1px solid var(--line); }
.brand { display:flex; align-items:center; gap:12px; font-weight:750; text-decoration:none; letter-spacing:-.02em; }
.brand-large { font-size:1.1rem; }
.brand-mark { width:38px; height:38px; display:grid; place-items:center; border-radius:11px; color:white; background:var(--brand); box-shadow:0 8px 22px #087f5b33; }
.user-menu { display:flex; align-items:center; gap:22px; color:var(--muted); font-size:.9rem; }
.user-menu a,.link-button { border:0; padding:0; background:none; color:var(--brand-dark); font:inherit; cursor:pointer; text-decoration:none; }
.page-shell { width:min(1180px,90vw); margin:0 auto; padding:54px 0; }
.welcome { display:flex; align-items:flex-start; justify-content:space-between; gap:30px; margin-bottom:32px; }
h1,h2,p { margin-top:0; } h1 { margin-bottom:10px; font-size:clamp(2rem,4vw,3.25rem); line-height:1.08; letter-spacing:-.045em; } h2 { margin-bottom:10px; letter-spacing:-.025em; }
.eyebrow { margin-bottom:10px; color:var(--brand); text-transform:uppercase; font-size:.75rem; font-weight:800; letter-spacing:.14em; }
.muted { color:var(--muted); }
.status-pill,.tag { display:inline-flex; align-items:center; gap:8px; white-space:nowrap; padding:8px 12px; border-radius:999px; background:var(--accent); color:var(--brand-dark); font-size:.8rem; font-weight:700; }
.status-pill span { width:8px; height:8px; border-radius:50%; background:#20a873; box-shadow:0 0 0 4px #20a87320; }
.stat-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:16px; }
.stat-card,.panel { background:var(--paper); border:1px solid var(--line); border-radius:18px; box-shadow:0 12px 35px #263b3310; }
.stat-card { padding:24px; } .stat-card span,.stat-card small { display:block; color:var(--muted); } .stat-card strong { display:block; margin:12px 0 8px; font-size:2.4rem; line-height:1; }
.stat-card-link { color:inherit; text-decoration:none; transition:transform .15s,border-color .15s; }.stat-card-link:hover { transform:translateY(-2px); border-color:#9bcab9; }
.content-grid { display:grid; grid-template-columns:1.35fr 1fr; gap:18px; margin-top:18px; }
.content-grid-single { grid-template-columns:1fr; }
.planning-summary-grid { display:grid; grid-template-columns:minmax(220px,.45fr) minmax(420px,1.55fr); gap:18px; }
.planning-summary-grid .panel { padding:24px; }
.planning-start-form { display:flex; align-items:end; gap:12px; flex-wrap:wrap; }.planning-start-form label { width:100%; font-weight:750; }.planning-start-form input { padding:11px 13px; border:1px solid #cad6d1; border-radius:9px; font:inherit; }
.planning-history { margin-top:18px; }.planning-confirm { display:flex; align-items:center; justify-content:space-between; gap:22px; margin-bottom:20px; padding:22px 26px; border:1px solid #9bcab9; border-radius:16px; background:#eefaf5; }.planning-confirm p { margin:6px 0 0; }
.planning-issues { margin-bottom:20px; padding:24px; border:1px solid #e8c766; border-radius:16px; background:#fffaf0; }.issue-row { display:flex; justify-content:space-between; gap:20px; padding:12px 0; border-top:1px solid #efdfaf; }.issue-row span { display:block; color:var(--muted); }.issue-row>div:last-child { text-align:right; }
.planning-day { margin-top:18px; padding:24px; border:1px solid var(--line); border-radius:18px; background:#fff; box-shadow:0 12px 35px #263b3310; }.planning-day-title { display:flex; justify-content:space-between; }.planning-route { margin-top:18px; }.planning-route h3 { margin:0 0 10px; }.planning-stop { display:grid; grid-template-columns:42px 90px minmax(260px,1fr) 130px; align-items:center; gap:14px; padding:14px 0; border-top:1px solid var(--line); }.planning-sequence { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; background:var(--brand); color:#fff; font-weight:800; }.planning-time span,.planning-customer span,.planning-customer small,.planning-travel span { display:block; color:var(--muted); }.planning-travel { text-align:right; }.tour-heading { display:flex; justify-content:space-between; align-items:center; gap:18px; }.tour-heading h3 { margin-bottom:4px; }.planning-leg { display:grid; grid-template-columns:42px minmax(260px,1fr) 130px; align-items:center; gap:14px; padding:13px 16px; border-top:1px solid var(--line); background:#f7faf8; }.planning-leg span { display:block; color:var(--muted); }.return-leg { border-bottom:1px solid var(--line); }.tour-summary { display:flex; justify-content:flex-end; gap:24px; padding:12px 0; color:var(--muted); font-size:.9rem; }
.day-tabs { position:sticky; top:0; z-index:5; display:flex; gap:8px; margin:18px 0; padding:10px; overflow-x:auto; background:#fff; border:1px solid var(--line); border-radius:15px; box-shadow:0 10px 30px #263b3310; }.day-tab { min-width:92px; padding:10px 14px; border:1px solid transparent; border-radius:10px; background:#f4f7f5; color:var(--muted); cursor:pointer; font:inherit; text-align:left; }.day-tab strong,.day-tab span,.day-tab small { display:block; }.day-tab strong { color:var(--ink); }.day-tab span { margin:2px 0; font-weight:750; }.day-tab small { font-size:.72rem; }.day-tab.active { border-color:var(--brand); background:var(--accent); color:var(--brand-dark); }.tabs-ready .planning-day { display:none; }.tabs-ready .planning-day.active { display:block; }
.confirm-tour-button { padding:10px 14px; border:0; border-radius:9px; background:var(--brand); color:#fff; cursor:pointer; font:inherit; font-weight:800; }.planned-tour { padding:16px; border:2px solid #64b596; border-radius:14px; background:#f5fcf9; }.planning-board-wrap { overflow:auto; border:1px solid var(--line); border-radius:16px; background:#fff; box-shadow:0 12px 35px #263b3310; }.planning-board { min-width:1200px; width:100%; border-collapse:separate; border-spacing:0; }.planning-board th,.planning-board td { min-width:135px; padding:9px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); vertical-align:top; }.planning-board thead th { position:sticky; top:0; z-index:2; background:#f7f9f8; text-align:left; }.planning-board thead th span,.employee-column span { display:block; color:var(--muted); font-size:.75rem; }.planning-board .employee-column { position:sticky; left:0; z-index:3; min-width:190px; background:#fff; }.planning-board thead .employee-column { z-index:4; background:#f7f9f8; }.planning-board .weekend,.planning-board .off-day { background:#f1f2f1; }.board-cell { height:92px; }.board-cell.gap { background:#fffdf4; }.board-tour,.board-absence,.board-gap { display:block; margin-bottom:5px; padding:8px; border-radius:8px; text-decoration:none; font-size:.78rem; }.board-tour strong,.board-tour span,.board-absence strong,.board-absence span,.board-gap strong,.board-gap span { display:block; }.board-tour span,.board-absence span,.board-gap span { margin-top:3px; opacity:.78; }.board-tour.planned { background:#ccefe1; color:#075e45; }.board-tour.suggestion { border:1px dashed #4d83b8; background:#edf6ff; color:#24557f; }.board-absence { background:#f7deda; color:#873d34; }.board-gap { color:#8b7118; }.board-off { color:#9ca5a1; font-size:.75rem; }.board-legend { display:flex; flex-wrap:wrap; gap:18px; margin-top:14px; color:var(--muted); font-size:.82rem; }.board-legend i { display:inline-block; width:12px; height:12px; margin-right:5px; border-radius:3px; }.board-legend .planned { background:#8ed1b5; }.board-legend .suggestion { background:#a9d1f5; }.board-legend .gap { background:#fff0a8; }.board-legend .absence { background:#ebb0a8; }
.overnight-bar { display:flex; align-items:center; gap:14px; margin:4px 0; padding:13px 18px; border-top:2px solid #315f89; border-bottom:2px solid #315f89; background:#eaf3fb; color:#244d71; }.overnight-symbol { width:42px; height:42px; display:grid; place-items:center; flex:0 0 auto; border-radius:50%; background:#315f89; color:#fff; font-size:.78rem; font-weight:900; }.overnight-bar strong,.overnight-bar div>span { display:block; }.overnight-bar div>span { margin-top:3px; color:#55738d; font-size:.84rem; }
.overnight-content { flex:1; min-width:0; }.overnight-booking-form { display:grid; grid-template-columns:1fr 1.45fr 1fr 1fr auto; align-items:end; gap:9px; margin-top:12px; }.overnight-booking-form label { display:grid; gap:4px; color:#244d71; font-size:.74rem; font-weight:750; }.overnight-booking-form input { min-width:0; width:100%; padding:9px 10px; border:1px solid #adc2d4; border-radius:8px; background:#fff; color:var(--ink); font:inherit; }.overnight-booking-form button { padding:10px 13px; border:0; border-radius:8px; background:#315f89; color:#fff; cursor:pointer; font:inherit; font-weight:800; }
.planning-guide { margin-bottom:22px; padding:24px; border:2px solid #9bcab9; border-radius:18px; background:#eefaf5; }.guide-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }.guide-steps>div { padding:14px; background:#fff; border-radius:12px; }.guide-steps b { width:28px; height:28px; display:grid; place-items:center; margin-bottom:9px; border-radius:50%; background:var(--brand); color:#fff; }.guide-steps strong,.guide-steps span { display:block; }.guide-steps span { margin-top:5px; color:var(--muted); font-size:.82rem; }.coordination-stop { grid-template-columns:42px 90px minmax(260px,1fr) minmax(230px,300px); align-items:start; }.call-data { margin-top:12px; padding:10px; border-radius:8px; background:#fff7d6; color:#5e4a00; }.coordination-note { margin-top:8px; color:var(--muted); font-size:.85rem; }.coordination-actions { display:grid; gap:8px; }.coordination-actions small { color:var(--muted); }.coordination-form { display:grid; gap:7px; }.coordination-form input,.coordination-form button,.inline-form select,.inline-form button { width:100%; padding:9px 10px; border:1px solid #cbd7d2; border-radius:8px; background:#fff; font:inherit; }.coordination-form button { cursor:pointer; font-weight:750; }.coordination-form .confirm-button { border-color:var(--brand); background:var(--brand); color:#fff; }.alternative-row { display:grid; grid-template-columns:1fr 1fr; gap:6px; }.state.warning { background:#fff0c2; color:#725500; }
.panel { padding:28px; } .panel-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; }
.action-link { display:flex; justify-content:space-between; padding:15px 0 0; color:var(--brand-dark); font-weight:700; text-decoration:none; border-top:1px solid var(--line); }
.secondary-action { margin-top:15px; color:var(--muted); }
.main-nav { background:#fff; border-bottom:1px solid var(--line); }
.main-nav-inner { width:min(1180px,90vw); min-height:52px; margin:auto; display:flex; align-items:center; gap:26px; }
.main-nav a { color:var(--ink); font-size:.9rem; font-weight:700; text-decoration:none; }
.nav-disabled { color:#a2aea9; font-size:.9rem; }
.tenant-switcher { margin-left:auto; display:flex; align-items:center; gap:8px; color:var(--muted); font-size:.84rem; }
.tenant-switcher strong,.tenant-switcher summary { color:var(--ink); font-weight:750; cursor:pointer; }
.role-label { padding:4px 8px; border-radius:999px; background:var(--accent); color:var(--brand-dark); font-size:.72rem; font-weight:750; white-space:nowrap; }
.tenant-switcher details { position:relative; }
.tenant-menu { position:absolute; right:0; z-index:10; min-width:220px; margin-top:10px; padding:8px; background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:0 16px 40px #263b3320; }
.tenant-menu a { display:block; padding:10px; border-radius:8px; }
.tenant-menu a:hover { background:var(--canvas); }
.messages { margin-bottom:20px; }.message { padding:13px 16px; border-radius:10px; background:var(--accent); color:var(--brand-dark); font-weight:650; }
.page-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:28px; margin-bottom:28px; }
.page-heading h1 { margin-bottom:8px; }.tenant-name-stat { font-size:1.15rem!important; line-height:1.25!important; }
.search-bar { display:flex; gap:10px; margin-bottom:18px; padding:14px; background:#fff; border:1px solid var(--line); border-radius:14px; }
.search-bar input { flex:1; min-width:150px; }.search-bar input,.search-bar select { padding:12px 14px; border:1px solid #cad6d1; border-radius:9px; background:#fff; font:inherit; }
.search-bar button,.small-button,.secondary-button { padding:11px 16px; border:1px solid var(--brand); border-radius:9px; background:#fff; color:var(--brand-dark); font:inherit; font-weight:750; text-decoration:none; cursor:pointer; }
.search-bar a { align-self:center; color:var(--muted); font-size:.85rem; }
.data-panel { overflow:hidden; background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:0 12px 35px #263b3310; }
.table-wrap { overflow-x:auto; }.data-table { width:100%; border-collapse:collapse; }.data-table th { padding:14px 18px; background:#f7f9f8; color:var(--muted); font-size:.75rem; text-align:left; text-transform:uppercase; letter-spacing:.06em; }.data-table td { padding:17px 18px; border-top:1px solid var(--line); }.row-link,.back-link { color:var(--brand-dark); font-weight:750; text-decoration:none; white-space:nowrap; }
.state { display:inline-block; padding:5px 9px; border-radius:999px; background:#eef1ef; color:var(--muted); font-size:.75rem; font-weight:750; }.state.active { background:var(--accent); color:var(--brand-dark); }
.empty-state { padding:65px 30px; text-align:center; }.empty-state p { color:var(--muted); }
.detail-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:18px; }.details { display:grid; grid-template-columns:140px 1fr; gap:15px; margin:22px 0 0; }.details dt { color:var(--muted); }.details dd { margin:0; font-weight:650; }
.location-row { display:flex; justify-content:space-between; gap:20px; padding:15px 0; border-top:1px solid var(--line); }.location-row strong,.location-row span { display:block; }.location-row span { margin-top:4px; color:var(--muted); font-size:.88rem; }.location-row a { color:var(--brand-dark); font-weight:700; text-decoration:none; }.compact-empty { padding:24px 0; color:var(--muted); border-top:1px solid var(--line); }
.location-block { border-top:1px solid var(--line); }.location-block .location-row { border-top:0; }.row-actions { display:flex; flex-direction:column; align-items:flex-end; gap:7px; white-space:nowrap; }.installation-list { margin:0 0 12px 16px; padding-left:16px; border-left:3px solid var(--accent); }.installation-row { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:12px 0; border-top:1px solid #edf1ef; }.installation-row:first-child { border-top:0; }.installation-row strong,.installation-row span { display:block; }.installation-row span:not(.state) { margin-top:3px; color:var(--muted); font-size:.82rem; }.installation-row>div:last-child { display:flex; align-items:center; gap:12px; }.installation-row a { color:var(--brand-dark); font-size:.85rem; font-weight:700; text-decoration:none; }.field-help { color:var(--muted); font-size:.78rem; }
.installation-block { border-top:1px solid #edf1ef; }.installation-block:first-child { border-top:0; }.installation-block .installation-row { border-top:0; }.installation-row>div:last-child { flex-wrap:wrap; justify-content:flex-end; }.contract-list { margin:0 0 10px 18px; padding-left:14px; border-left:2px solid #dfe7e3; }.contract-row { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:9px 0; border-top:1px dashed #e2e9e6; font-size:.86rem; }.contract-row:first-child { border-top:0; }.contract-row strong,.contract-row span { display:block; }.contract-row span:not(.state) { margin-top:2px; color:var(--muted); font-size:.78rem; }.contract-row>div:last-child { display:flex; align-items:center; gap:10px; }.contract-row a { color:var(--brand-dark); font-weight:700; text-decoration:none; }.contract-empty { padding:8px 0 12px; color:var(--muted); font-size:.82rem; }
.checklist-card { max-width:1050px; }.section-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:36px 0 14px; padding-top:28px; border-top:1px solid var(--line); }.section-heading h2 { margin:0; }.checklist-items { display:grid; gap:12px; }.checklist-item-form { display:grid; grid-template-columns:90px 1fr; gap:12px 18px; padding:18px; background:#f7f9f8; border:1px solid var(--line); border-radius:12px; }.checklist-item-form label { display:block; margin-bottom:6px; font-size:.8rem; font-weight:750; }.checklist-item-form input[type="number"],.checklist-item-form textarea { width:100%; padding:10px 11px; border:1px solid #cbd7d2; border-radius:8px; font:inherit; }.check-options { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:22px; }.check-options label { display:flex; align-items:center; gap:7px; margin:0; color:var(--muted); font-weight:650; }.delete-option { color:#a43b34!important; }
.planning-row { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:12px 0; border-top:1px solid var(--line); }.planning-row strong,.planning-row span { display:block; }.planning-row span { margin-top:3px; color:var(--muted); font-size:.82rem; }.planning-row a { color:var(--brand-dark); font-weight:700; text-decoration:none; white-space:nowrap; }
.form-card { max-width:850px; margin:18px auto; padding:36px; background:#fff; border:1px solid var(--line); border-radius:20px; box-shadow:0 18px 50px #263b3314; }.form-card h1 { font-size:2.35rem; }.master-form { margin-top:30px; }.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }.form-field { display:flex; flex-direction:column; gap:7px; }.form-field label { font-size:.84rem; font-weight:750; }.form-field input,.form-field textarea,.form-field select { width:100%; padding:12px 13px; border:1px solid #cbd7d2; border-radius:9px; font:inherit; }.form-field input:focus,.form-field textarea:focus { outline:0; border-color:var(--brand); box-shadow:0 0 0 4px #087f5b15; }.wide-field { grid-column:1/-1; }.checkbox-field { flex-direction:row-reverse; justify-content:flex-end; align-items:center; }.checkbox-field input { width:auto; }.field-error { color:#a43b34; font-size:.8rem; }.form-actions { margin-top:28px; padding-top:22px; border-top:1px solid var(--line); }.back-link { display:inline-block; margin-bottom:22px; }
.order-form-card { max-width:980px; }.order-section { margin:28px 0 0; padding:22px; border:1px solid var(--line); border-radius:14px; }.order-section legend { padding:0 8px; color:var(--brand-dark); font-size:1.15rem; font-weight:800; }.section-help { margin:-4px 0 20px; color:var(--muted); }.priority-help { color:#8a3b25; font-size:.85rem; }.order-advanced { margin-top:20px; padding:16px 20px; border:1px solid var(--line); border-radius:12px; }.order-advanced summary { cursor:pointer; font-weight:750; }.order-advanced .form-grid { margin-top:16px; }
.weekday-grid { display:grid; grid-template-columns:repeat(4,minmax(120px,1fr)); gap:16px; }
.login-page { background:linear-gradient(125deg,#0b2d25 0%,#0c4938 48%,var(--canvas) 48%); }
.login-layout { width:min(1120px,90vw); min-height:100vh; margin:auto; display:grid; grid-template-columns:1.05fr .95fr; align-items:center; gap:9vw; }
.login-intro { color:white; max-width:540px; } .login-intro .brand { margin-bottom:100px; } .login-intro .eyebrow { color:#8de0c4; } .login-intro p:last-child { max-width:480px; color:#c8ddd6; font-size:1.12rem; line-height:1.7; }
.login-card { padding:44px; background:#ffffffed; backdrop-filter:blur(12px); border:1px solid #fff; border-radius:24px; box-shadow:0 30px 80px #081e182e; }
.login-card h2 { font-size:2rem; }
.login-form { display:grid; gap:10px; margin-top:28px; } .login-form label { margin-top:9px; font-size:.86rem; font-weight:700; }
.login-form input { width:100%; padding:14px 15px; border:1px solid #cdd8d3; border-radius:10px; background:white; color:var(--ink); font:inherit; outline:none; } .login-form input:focus { border-color:var(--brand); box-shadow:0 0 0 4px #087f5b18; }
.primary-button { margin-top:18px; padding:15px; border:0; border-radius:10px; background:var(--brand); color:white; font:inherit; font-weight:750; cursor:pointer; box-shadow:0 10px 24px #087f5b30; }
.primary-button:hover { background:var(--brand-dark); }
.alert { margin-top:18px; padding:12px 14px; border-radius:10px; background:#fff1f0; color:#a43b34; font-size:.9rem; }
.forgotten-link { display:inline-block; margin-top:20px; color:var(--brand-dark); font-size:.9rem; font-weight:700; text-decoration:none; }
.narrow-card { width:min(620px,100%); margin:30px auto; padding:42px; background:var(--paper); border:1px solid var(--line); border-radius:22px; box-shadow:0 18px 50px #263b3314; }
.narrow-card h1 { font-size:clamp(2rem,4vw,2.8rem); }
.primary-link { display:inline-block; margin-top:18px; padding:13px 18px; border-radius:10px; background:var(--brand); color:white; font-weight:750; text-decoration:none; }
.section-navigation { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 28px; padding:10px; background:#fff; border:1px solid var(--line); border-radius:14px; }.section-navigation a { padding:9px 12px; border-radius:9px; color:var(--brand-dark); font-size:.85rem; font-weight:750; text-decoration:none; }.section-navigation a:hover { background:var(--accent); }
.danger-link { color:#a43b34; font-weight:750; text-decoration:none; }.danger-button { margin-top:18px; padding:13px 18px; border:0; border-radius:10px; background:#a43b34; color:#fff; font:inherit; font-weight:750; cursor:pointer; }
.service-day { margin-bottom:20px; padding:26px; background:#fff; border:1px solid var(--line); border-radius:18px; box-shadow:0 12px 35px #263b3310; }.today-day { border-top:5px solid var(--brand); }.overdue-day { border-top:5px solid #b34a42; }.service-day-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:15px; }.service-day-heading h2 { margin:0; }.today-order { display:grid; grid-template-columns:95px 1fr; gap:20px; padding:22px 0; border-top:1px solid var(--line); }.order-time strong,.order-time span { display:block; }.order-time strong { font-size:1.45rem; }.order-time span { margin-top:4px; color:var(--muted); font-size:.82rem; }.order-title { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; }.order-title h3 { margin:8px 0 12px; font-size:1.25rem; }.order-main p { margin:6px 0; }.order-address { font-weight:650; }.order-description { margin:14px 0; padding:14px; background:#f4f7f5; border-radius:10px; line-height:1.55; }.future-order { display:grid; grid-template-columns:70px 1fr auto; align-items:center; gap:16px; padding:14px 0; border-top:1px solid var(--line); }.future-order time { font-weight:800; }.future-order strong,.future-order span:not(.state) { display:block; }.future-order span:not(.state) { margin-top:3px; color:var(--muted); font-size:.84rem; }.empty-day { padding:28px 0 12px; color:var(--muted); }.empty-day h3 { color:var(--ink); }
.master-data-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }.master-data-card { position:relative; min-height:190px; padding:26px; overflow:hidden; background:#fff; border:1px solid var(--line); border-radius:18px; color:var(--ink); text-decoration:none; box-shadow:0 12px 35px #263b3310; }.master-data-card:hover { border-color:#9bcab9; transform:translateY(-1px); }.master-data-card span,.master-data-card small,.master-data-card strong { display:block; }.master-data-card span { color:var(--brand); font-size:.75rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }.master-data-card strong { margin-top:12px; font-size:1.45rem; }.master-data-card b { position:absolute; right:24px; top:23px; color:#dbe8e3; font-size:3.4rem; line-height:1; }.master-data-card small { margin-top:34px; color:var(--muted); }.filter-tabs { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 16px; }.filter-tabs a { padding:9px 13px; border:1px solid var(--line); border-radius:999px; background:#fff; color:var(--muted); font-size:.85rem; font-weight:700; text-decoration:none; }.filter-tabs a.selected { border-color:var(--brand); background:var(--accent); color:var(--brand-dark); }.table-actions { display:flex; flex-wrap:wrap; gap:14px; }
@media (max-width:800px) { .login-page { background:#0c4938; } .login-layout { grid-template-columns:1fr; padding:38px 0; gap:35px; } .login-intro .brand { margin-bottom:45px; } .stat-grid { grid-template-columns:repeat(2,1fr); } .content-grid,.detail-grid,.master-data-grid,.planning-summary-grid,.guide-steps,.weekday-grid { grid-template-columns:1fr; } .user-menu>span { display:none; } .main-nav-inner { overflow-x:auto; }.tenant-switcher { position:sticky; right:0; background:#fff; padding-left:12px; }.form-grid { grid-template-columns:1fr; }.wide-field { grid-column:auto; }.planning-stop,.coordination-stop { grid-template-columns:38px 72px 1fr; }.planning-travel,.coordination-actions { grid-column:2/-1; text-align:left; } }
@media (max-width:520px) { .topbar { padding:0 18px; } .brand>span:last-child { display:none; } .page-shell { width:auto; padding:32px 18px; } .welcome { display:block; } .status-pill { margin-top:10px; } .stat-grid { grid-template-columns:1fr; } .login-card { padding:28px 22px; } }
@media (max-width:1000px) { .overnight-booking-form { grid-template-columns:1fr 1fr; }.overnight-booking-form button { grid-column:1/-1; } }
.tenant-holiday,.customer-holiday { display:block; margin-top:6px; padding:5px 6px; border-radius:6px; font-size:.68rem; line-height:1.25; }.tenant-holiday { background:#f7deda; color:#873d34!important; }.customer-holiday { background:#fff0c2; color:#725500!important; }.board-holiday { display:block; padding:8px; border-radius:8px; background:#f7deda; color:#873d34; font-size:.78rem; }.board-holiday strong,.board-holiday span { display:block; }.board-holiday span { margin-top:3px; }.board-legend .holiday { background:#ebb0a8; }
.confirmed-stop { margin:4px 0; padding-left:10px; padding-right:10px; border:2px solid #46a884; border-radius:12px; background:#f0fbf7; scroll-margin-top:125px; }.confirmed-result { padding:11px 12px; border-radius:9px; background:#ccefe1; color:#075e45; }.confirmed-result strong,.confirmed-result span { display:block; }.confirmed-result span { margin-top:4px; font-size:.78rem; }
.planning-board-scroll-top { height:20px; margin-bottom:6px; overflow-x:auto; overflow-y:hidden; border:1px solid var(--line); border-radius:8px; background:#fff; }.planning-board-scroll-top>div { height:1px; }
.employee-day-nav { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:12px; padding:14px 18px; border:1px solid var(--line); border-radius:14px; background:#fff; }.employee-day-nav a { color:var(--brand-dark); font-weight:800; text-decoration:none; }.employee-day-nav input { margin-left:8px; padding:9px; border:1px solid #cbd7d2; border-radius:8px; }.employee-week-tabs { display:grid; grid-template-columns:repeat(7,1fr); gap:8px; margin-bottom:22px; }.employee-week-tabs a { padding:12px; border:1px solid var(--line); border-radius:10px; background:#fff; text-decoration:none; }.employee-week-tabs strong,.employee-week-tabs span,.employee-week-tabs small { display:block; }.employee-week-tabs span { margin:3px 0; }.employee-week-tabs small { color:var(--muted); }.employee-week-tabs a.active { border-color:var(--brand); background:var(--accent); }.employee-tour { margin-bottom:22px; padding:24px; border:1px solid var(--line); border-radius:18px; background:#fff; box-shadow:0 12px 35px #263b3310; }.employee-tour>header { display:flex; justify-content:space-between; }.employee-stop { display:grid; grid-template-columns:42px 82px 1fr auto; align-items:center; gap:14px; padding:18px 0; border-top:1px solid var(--line); }.employee-stop h3,.employee-stop p { margin:0 0 5px; }.employee-stop small { color:var(--muted); }.employee-stop .primary-link { margin:0; }.employee-leg { display:grid; grid-template-columns:42px 1fr auto; align-items:center; gap:14px; padding:14px; border-top:1px solid var(--line); background:#f7faf8; }.employee-leg>b { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; background:var(--brand); color:#fff; }.employee-leg span,.employee-leg>div:last-child>* { display:block; color:var(--muted); text-align:right; }.service-status-panel { margin-bottom:18px; padding:24px; border:2px solid #8fc9b4; border-radius:18px; background:#eefaf5; }.service-status-buttons { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }.service-status-buttons button { padding:14px; border:1px solid var(--brand); border-radius:10px; background:#fff; color:var(--brand-dark); cursor:pointer; font:inherit; font-weight:800; }.service-status-buttons button:hover { background:var(--brand); color:#fff; }.service-order-grid { grid-template-columns:1fr 1fr; }.status-history,.material-row { display:flex; justify-content:space-between; gap:15px; padding:10px 0; border-top:1px solid var(--line); }.status-history time,.material-row span { color:var(--muted); }.material-form { display:grid; grid-template-columns:1fr 100px; gap:12px; margin:18px 0; }.material-form label { display:grid; gap:5px; font-size:.8rem; font-weight:750; }.material-form input,.material-form select { min-width:0; padding:10px; border:1px solid #cbd7d2; border-radius:8px; font:inherit; }.material-form button { grid-column:1/-1; padding:12px; border:0; border-radius:9px; background:var(--brand); color:#fff; font:inherit; font-weight:800; }.report-card { max-width:none; }.signature-field { margin-top:20px; }.signature-field label { display:block; margin-bottom:7px; font-weight:750; }.signature-field canvas { display:block; width:100%; max-width:760px; height:180px; margin-bottom:10px; border:2px solid #aabbb4; border-radius:10px; background:#fff; touch-action:none; }
@media (max-width:800px) { .employee-week-tabs { display:flex; overflow-x:auto; }.employee-week-tabs a { min-width:90px; }.employee-stop { grid-template-columns:36px 65px 1fr; }.employee-stop .primary-link { grid-column:2/-1; }.service-status-buttons,.service-order-grid { grid-template-columns:1fr; }.employee-day-nav { flex-wrap:wrap; } }
.planning-board .board-tour.planned { border:1px solid #65b997; background:#d8f5e9; color:#075e45; }.planning-board .board-tour.suggestion { border:1px solid #6aa6dc; background:#ddecfb; color:#174f7d; }
