/* Tall Pines ATV Park Reservation System - Unified Admin UI Restore */
:root{--tp-blue:#0758b8;--tp-blue2:#004ea8;--tp-navy:#0f172a;--tp-bg:#f4f7fb;--tp-card:#fff;--tp-border:#dbe5f0;--tp-muted:#64748b;--tp-green:#16a34a;--tp-green-bg:#ecfdf3;--tp-red:#dc2626;--tp-red-bg:#fff1f2;--tp-yellow:#ca8a04;--tp-yellow-bg:#fffbeb;--tp-orange:#ea580c;--tp-orange-bg:#fff7ed;--tp-shadow:0 10px 28px rgba(15,23,42,.07)}
*{box-sizing:border-box} body{margin:0;background:var(--tp-bg);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--tp-navy);font-size:15px;line-height:1.45} a{color:#0758b8;text-decoration:none;font-weight:700} a:hover{text-decoration:underline}.tp-app{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:100vh}.tp-sidebar{background:#fff;border-right:1px solid var(--tp-border);position:sticky;top:0;height:100vh;overflow:auto}.tp-brand{height:76px;background:var(--tp-blue);color:#fff;display:flex;gap:12px;align-items:center;padding:0 22px;font-weight:900}.tp-brand-mark{width:38px;height:38px;border-radius:12px;background:rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center}.tp-brand small{display:block;font-size:11px;letter-spacing:1.2px}.tp-nav{padding:18px 14px 125px}.tp-nav a{display:flex;gap:10px;align-items:center;padding:12px 14px;border-radius:10px;color:var(--tp-navy);font-size:14px;font-weight:900;margin-bottom:6px}.tp-nav a:hover,.tp-nav a.active{background:#eaf2ff;color:var(--tp-blue);text-decoration:none}.tp-park-status{position:absolute;bottom:20px;left:14px;right:14px;border:1px solid var(--tp-border);border-radius:14px;background:#fff;padding:15px;box-shadow:0 4px 12px rgba(15,23,42,.04);font-size:13px}.tp-main{min-width:0}.tp-topbar{height:76px;background:linear-gradient(90deg,var(--tp-blue),var(--tp-blue2));color:#fff;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:0 28px;box-shadow:0 5px 18px rgba(15,23,42,.12)}.tp-topbar h1{margin:0;font-size:20px;white-space:nowrap}.tp-search{width:400px;max-width:40vw;border-radius:12px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.14);color:#fff;padding:12px 16px;font-weight:800}.tp-search::placeholder{color:rgba(255,255,255,.86)}.tp-user{display:flex;align-items:center;gap:10px;font-weight:900}.tp-avatar{width:38px;height:38px;border-radius:50%;background:#fff;color:var(--tp-blue);display:flex;align-items:center;justify-content:center;font-weight:900}.tp-content{padding:28px;max-width:100%;overflow-x:hidden}.tp-page-label,.page-kicker{text-transform:uppercase;color:var(--tp-muted);letter-spacing:1.5px;font-weight:900;font-size:12px;margin-bottom:4px}.tp-page-title,h1,h2,h3{color:var(--tp-navy)}.tp-page-title,h1{font-size:30px;line-height:1.12;margin:0 0 10px;font-weight:950}h2{font-size:24px;margin:22px 0 12px;font-weight:950}h3{font-size:18px;margin:16px 0 10px;font-weight:900}p{color:#334155}.tp-card,.card,section>div:has(>form),form:not(.inline):not(.tp-nav form){background:#fff;border:1px solid var(--tp-border);border-radius:16px;box-shadow:var(--tp-shadow)}.tp-card{padding:18px}.tp-btn,.btn,button,input[type=submit],a.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--tp-blue);border:1px solid var(--tp-blue);color:#fff;border-radius:10px;padding:11px 16px;font-weight:900;cursor:pointer;text-decoration:none;line-height:1.1}.tp-btn:hover,.btn:hover,button:hover,input[type=submit]:hover,a.button:hover{background:#004a9f;text-decoration:none}.tp-btn.secondary,.btn.secondary,a.secondary{background:#fff;color:var(--tp-navy);border-color:var(--tp-border)}input,select,textarea{border:1px solid #cbd5e1;border-radius:10px;padding:10px 12px;background:#fff;font:inherit;max-width:100%}label{font-weight:900;color:var(--tp-navy);display:inline-block;margin-bottom:6px}.alert,.success,.notice,.status-success{background:#dcfce7;color:#166534;border:1px solid #86efac;border-radius:14px;padding:12px 16px;font-weight:800;margin:0 0 16px}.error,.status-error{background:#fee2e2;color:#991b1b;border:1px solid #fecaca;border-radius:14px;padding:12px 16px;font-weight:800;margin:0 0 16px}table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid var(--tp-border);border-radius:16px;overflow:hidden;box-shadow:var(--tp-shadow)}th,td{padding:12px 14px;border-bottom:1px solid #e8eef6;text-align:left;vertical-align:top}th{background:#f8fafc;color:#475569;text-transform:uppercase;letter-spacing:.45px;font-size:12px;font-weight:950}tr:last-child td{border-bottom:0}.badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:12px;font-weight:900}.badge.green,.paid,.available{background:var(--tp-green-bg);color:#087b33}.badge.red,.booked{background:var(--tp-red-bg);color:#b91c1c}.badge.yellow,.limited{background:var(--tp-yellow-bg);color:#92400e}.badge.blue{background:#eaf2ff;color:#0758b8}.metrics,.kpi-grid,.dashboard-kpis{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:16px;margin:18px 0 22px}.metric,.kpi-card,.dashboard-kpi{background:#fff;border:1px solid var(--tp-border);border-radius:16px;box-shadow:var(--tp-shadow);padding:18px}.metric strong,.kpi-card strong{display:block;font-size:28px;line-height:1.1}.calendar-shell,.booking-calendar,.availability-shell,.manifest-panel,.unit-panel,.import-panel,.owner-panel,.payout-panel{background:#fff;border:1px solid var(--tp-border);border-radius:16px;box-shadow:var(--tp-shadow);padding:18px;margin-top:16px}.calendar-controls,.page-actions,.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:14px 0}.calendar-grid,.availability-grid{display:grid;grid-template-columns:210px repeat(7,minmax(130px,1fr));gap:8px;min-width:1080px}.availability-grid{grid-template-columns:210px repeat(8,minmax(110px,1fr))}.calendar-scroll,.table-scroll,.grid-scroll{overflow:auto;padding-bottom:6px}.calendar-head,.calendar-unit,.calendar-cell,.availability-cell{border:1px solid var(--tp-border);border-radius:10px;padding:12px;background:#fff;min-height:64px}.calendar-head{background:#f8fafc;text-align:center;font-weight:950}.calendar-unit{font-weight:950;display:flex;flex-direction:column;gap:3px}.calendar-unit small{color:var(--tp-muted);font-weight:800}.calendar-cell{background:#eefbea;border-color:#c7efbf}.calendar-cell.booked,.calendar-cell.status-booked{background:#fff1f2;border-color:#fecaca}.calendar-cell.owner,.calendar-cell.status-owner{background:#f5f3ff;border-color:#ddd6fe}.calendar-cell.maintenance,.calendar-cell.status-maintenance{background:#fff7ed;border-color:#fed7aa}.calendar-cell.closed,.calendar-cell.status-closed{background:#f1f5f9;border-color:#cbd5e1;color:#64748b}.cell-time{font-weight:950}.cell-status{display:block;font-weight:950;color:#087b33}.booked .cell-status{color:#b91c1c}.maintenance .cell-status{color:#c2410c}.manifest-list,.manifest-card{background:#fff;border:1px solid var(--tp-border);border-radius:16px;box-shadow:var(--tp-shadow);padding:16px;margin:14px 0}.manifest-booking{display:grid;grid-template-columns:260px repeat(3,minmax(130px,1fr)) 220px;gap:10px;border:1px solid #e8eef6;border-radius:14px;padding:14px;margin:12px 0}.manifest-booking>div{background:#f8fafc;border:1px solid #e8eef6;border-radius:10px;padding:10px}.form-grid,.rental-form-grid,.booking-form-grid{display:grid;grid-template-columns:1fr 1.2fr 330px;gap:18px;align-items:start}.form-card,.booking-panel,.booking-total-panel{background:#fff;border:1px solid var(--tp-border);border-radius:16px;box-shadow:var(--tp-shadow);padding:18px}.field-row{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.pricing-options{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:10px}.pricing-option{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#f8fafc;border:1px solid #dbe5f0;border-radius:12px;padding:12px;font-weight:900}.pricing-option:has(input:checked){background:#eaf2ff;border-color:#9cc5ff}.total-box{background:#eaf2ff;border:1px solid #b7d5ff;border-radius:14px;padding:14px;margin-top:12px}.unit-grid,.rental-unit-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.unit-card{background:#fff;border:1px solid var(--tp-border);border-radius:16px;box-shadow:var(--tp-shadow);overflow:hidden}.unit-card-body{padding:16px}.unit-card img{width:100%;height:160px;object-fit:cover}.owners-form,.import-form,.payout-form{display:flex;align-items:end;gap:10px;flex-wrap:wrap;background:#fff;border:1px solid var(--tp-border);border-radius:16px;box-shadow:var(--tp-shadow);padding:16px;margin:14px 0}.owners-form textarea{min-width:230px}.crud-form{background:#fff;border:1px solid var(--tp-border);border-radius:16px;box-shadow:var(--tp-shadow);padding:18px;margin:16px 0;display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:14px}.crud-form .full{grid-column:1/-1}@media(max-width:1200px){.form-grid,.rental-form-grid,.booking-form-grid{grid-template-columns:1fr}.metrics,.kpi-grid,.dashboard-kpis{grid-template-columns:repeat(2,1fr)}.manifest-booking{grid-template-columns:1fr 1fr}}@media(max-width:900px){.tp-app{grid-template-columns:1fr}.tp-sidebar{height:auto;position:relative}.tp-park-status{position:static;margin:12px}.tp-topbar{height:auto;flex-wrap:wrap;padding:16px}.tp-search{max-width:none;width:100%}.tp-content{padding:18px}.crud-form{grid-template-columns:1fr}.metrics,.kpi-grid,.dashboard-kpis{grid-template-columns:1fr}.manifest-booking{grid-template-columns:1fr}}
