.zsp{--zsp-brand:#168840;--zsp-brand-dark:#085e28;--zsp-ink:#0f172a;--zsp-muted:#64748b;--zsp-line:#e2e8f0;--zsp-card:#ffffff;color:var(--zsp-ink);font-size:16px}.zsp .toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:16px}.zsp .hintline{color:var(--zsp-muted);font-size:.88rem}.zsp .btn{border:none;border-radius:10px;padding:10px 18px;font-weight:600;font-size:.95rem;cursor:pointer;background:var(--zsp-brand);color:#fff;transition:background .15s}.zsp .btn:hover{background:var(--zsp-brand-dark)}.zsp .btn.ghost{background:#fff;color:var(--zsp-ink);border:1px solid var(--zsp-line)}.zsp .btn.small{padding:6px 12px;font-size:.85rem}.zsp .grid{display:grid;grid-template-columns:330px 1fr;gap:18px;align-items:start}@media (max-width:900px){.zsp .grid{grid-template-columns:1fr}}.zsp .card{background:var(--zsp-card);border:1px solid var(--zsp-line);border-radius:16px;padding:18px;margin-bottom:18px}.zsp .card h2{margin:0 0 12px;font-size:1.05rem}.zsp .card h2 .hint{color:var(--zsp-muted);font-weight:400;font-size:.85rem}.zsp label.f{display:block;font-size:.82rem;font-weight:600;color:var(--zsp-muted);margin-bottom:10px}.zsp label.f input,.zsp label.f select{display:block;width:100%;margin-top:4px;padding:8px 10px;font-size:.95rem;border:1px solid var(--zsp-line);border-radius:8px;background:#fff;color:var(--zsp-ink)}.zsp .row{display:flex;gap:10px}.zsp .row>*{flex:1}.zsp .check{display:flex;align-items:center;gap:8px;font-size:.9rem;font-weight:500;color:var(--zsp-ink);margin-bottom:8px;cursor:pointer}.zsp .check input{width:16px;height:16px;accent-color:var(--zsp-brand)}.zsp .opening{border:1px solid var(--zsp-line);border-radius:10px;padding:10px;margin-bottom:10px}.zsp .opening .row label.f{margin-bottom:6px}.zsp .opening .top{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.zsp .opening .top select{padding:5px 8px;border-radius:7px;border:1px solid var(--zsp-line);background:#fff}.zsp .x{background:none;border:none;color:var(--zsp-muted);cursor:pointer;font-size:.85rem}.zsp .x:hover{color:#991b1b}.zsp .kpis{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}.zsp .kpi{background:var(--zsp-card);border:1px solid var(--zsp-line);border-radius:12px;padding:10px 16px}.zsp .kpi b{display:block;font-size:1.25rem}.zsp .kpi span{color:var(--zsp-muted);font-size:.78rem}.zsp .badge-ok{display:inline-block;background:#dcfce7;color:#166534;padding:6px 12px;border-radius:999px;font-size:.88rem;font-weight:600}.zsp .violation{background:#fee2e2;color:#991b1b;padding:7px 12px;border-radius:10px;margin-bottom:6px;font-size:.88rem}.zsp .tabs{display:inline-flex;background:#eef2f7;border-radius:10px;padding:3px;margin-bottom:10px}.zsp .tabs button{border:none;background:none;padding:6px 14px;border-radius:8px;font-weight:600;cursor:pointer;color:var(--zsp-muted)}.zsp .tabs button.on{background:#fff;color:var(--zsp-ink);box-shadow:0 1px 3px rgba(0,0,0,.12)}.zsp table.t{border-collapse:collapse;width:100%;font-size:.88rem}.zsp table.t th{text-align:left;padding:8px 10px;border-bottom:2px solid var(--zsp-line);color:var(--zsp-muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.05em}.zsp table.t td{padding:8px 10px;border-bottom:1px solid var(--zsp-line);vertical-align:top}.zsp table.t td.num{text-align:right;font-variant-numeric:tabular-nums}.zsp table.t .note{color:var(--zsp-muted);font-size:.8rem}.zsp .timebar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:12px;padding:12px 16px;margin-top:10px}.zsp .timebar>b{font-size:1.1rem;color:#166534}.zsp .tchip{margin-right:14px;font-size:.85rem;color:#166534}.zsp .footer-note{color:var(--zsp-muted);font-size:.8rem;margin-top:8px}.zsp .zsp-print{display:none}@media print{body *{visibility:hidden}.zsp .zsp-print{display:block;position:absolute;top:0;left:0;width:100%;padding:24px;background:#fff}.zsp .zsp-print,.zsp .zsp-print *{visibility:visible}.zsp .screen{display:none}.zsp .zsp-print .print-page{page-break-after:always}.zsp .zsp-print .print-head{display:flex;justify-content:space-between;gap:12px;border-bottom:2px solid #000;padding-bottom:8px;margin-bottom:14px}.zsp .zsp-print .print-head h1{font-size:1.2rem;margin:0}.zsp .zsp-print .print-foot{margin-top:18px;padding-top:8px;border-top:1px solid #94a3b8;font-size:.75rem;color:#475569;display:flex;justify-content:space-between;gap:12px}.zsp .zsp-print table.t td,.zsp .zsp-print table.t th{padding:5px 8px}}