:root{
  --bg:#07111f;--panel:#0d1b2d;--panel2:#12243a;--line:#233b57;--text:#f5f8fc;--muted:#a9b7c8;
  --blue:#3d8bfd;--blue2:#6aa8ff;--green:#34c77b;--amber:#ffb648;--red:#ff656d;--white:#fff;
}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.shell{max-width:1250px;margin:0 auto;padding:16px}.topbar{position:sticky;top:0;z-index:20;background:rgba(7,17,31,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.topbar-inner{max-width:1250px;margin:0 auto;padding:12px 16px;display:flex;gap:14px;align-items:center;justify-content:space-between}.brand{font-weight:900;letter-spacing:.2px}.brand small{display:block;color:var(--muted);font-weight:600;font-size:.72rem}.nav-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.btn,.icon-btn{border:1px solid var(--line);background:var(--panel2);color:var(--text);border-radius:12px;padding:10px 14px;font-weight:800;cursor:pointer}.btn:hover,.icon-btn:hover{border-color:var(--blue2)}.btn.primary{background:var(--blue);border-color:var(--blue);color:white}.btn.success{background:var(--green);border-color:var(--green);color:#03140b}.btn.danger{background:var(--red);border-color:var(--red);color:#200406}.btn.warning{background:var(--amber);border-color:var(--amber);color:#231600}.btn.ghost{background:transparent}.btn.small{padding:7px 10px;border-radius:9px;font-size:.88rem}.grid{display:grid;gap:14px}.task-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:18px}.status-grid{grid-template-columns:repeat(6,minmax(0,1fr));margin-top:14px}.admin-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.card{background:linear-gradient(180deg,var(--panel),#0b1828);border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:0 12px 32px rgba(0,0,0,.18)}.task-card{min-height:145px;display:flex;flex-direction:column;justify-content:space-between;transition:.15s transform,.15s border-color}.task-card:hover{transform:translateY(-2px);border-color:var(--blue)}.task-card h3{margin:0;font-size:1.18rem}.task-card p{color:var(--muted);margin:10px 0 0}.status-card{padding:14px}.status-card .number{font-size:1.8rem;font-weight:900}.status-card .label{font-size:.83rem;color:var(--muted);margin-top:4px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:14px 0 18px}.page-head h1{margin:0;font-size:1.65rem}.page-head p{color:var(--muted);margin:5px 0 0}.section-title{font-size:1.05rem;margin:0 0 12px}.muted{color:var(--muted)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field{display:flex;flex-direction:column;gap:7px}.field.full{grid-column:1/-1}.field label{font-size:.87rem;font-weight:800;color:#dbe6f3}.field input,.field select,.field textarea{width:100%;border-radius:11px;border:1px solid var(--line);background:#081522;color:var(--text);padding:11px 12px;outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue)}textarea{min-height:90px;resize:vertical}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.flash{padding:12px 14px;border-radius:12px;margin:12px 0;font-weight:700}.flash.success{background:rgba(52,199,123,.14);border:1px solid rgba(52,199,123,.5)}.flash.error{background:rgba(255,101,109,.14);border:1px solid rgba(255,101,109,.5)}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px}.table{width:100%;border-collapse:collapse;background:var(--panel)}.table th,.table td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}.table th{font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.badge{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:999px;font-size:.78rem;font-weight:900;border:1px solid var(--line);background:#12243a}.badge.green{border-color:rgba(52,199,123,.5);background:rgba(52,199,123,.13)}.badge.red{border-color:rgba(255,101,109,.5);background:rgba(255,101,109,.13)}.badge.amber{border-color:rgba(255,182,72,.5);background:rgba(255,182,72,.13)}.badge.blue{border-color:rgba(61,139,253,.5);background:rgba(61,139,253,.13)}.timer{font-variant-numeric:tabular-nums;font-size:1.7rem;font-weight:900;letter-spacing:.04em}.plan-tabs{display:flex;gap:8px;overflow:auto;margin-bottom:10px}.plan-tabs button{white-space:nowrap}.plan-wrap{position:relative;display:inline-block;max-width:100%;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#111}.plan-wrap img{display:block;max-width:100%;height:auto;user-select:none}.marker{position:absolute;width:25px;height:25px;border-radius:50%;transform:translate(-50%,-50%);border:3px solid white;background:var(--blue);box-shadow:0 2px 8px rgba(0,0,0,.5);cursor:pointer;display:flex;align-items:center;justify-content:center;color:white;font-size:0}.marker:hover{transform:translate(-50%,-50%) scale(1.14)}.marker.selected{background:var(--amber);outline:3px solid rgba(255,182,72,.3)}.marker.complete{background:var(--green)}.marker.needs-work,.marker.hold{background:var(--red)}.marker.ready{background:var(--blue)}.marker.not-started{background:#65768c}.marker.cleaning{box-shadow:0 0 0 4px var(--amber),0 2px 8px rgba(0,0,0,.5)}.marker-label{position:absolute;transform:translate(-50%,calc(-50% + 22px));background:rgba(7,17,31,.92);border:1px solid var(--line);border-radius:6px;padding:2px 5px;font-size:.68rem;pointer-events:none;white-space:nowrap}.legend{display:flex;gap:12px;flex-wrap:wrap;margin:9px 0;color:var(--muted);font-size:.8rem}.legend span:before{content:"";display:inline-block;width:10px;height:10px;border-radius:50%;background:currentColor;margin-right:5px}.split{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:16px}.list{display:flex;flex-direction:column;gap:9px}.list-row{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:12px;background:#0a1726}.list-row strong{display:block}.list-row small{color:var(--muted)}.qr-row{display:flex;gap:8px;align-items:center;margin-bottom:8px}.qr-row input{flex:1}.component-row{display:grid;grid-template-columns:2fr 1fr auto;gap:8px;margin-bottom:8px}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(430px,100%)}.login-card h1{margin-top:0}.danger-zone{border-color:rgba(255,101,109,.5)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px}.kpi{font-size:2rem;font-weight:900}.empty{padding:24px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:14px}.timeline{border-left:2px solid var(--line);padding-left:18px}.timeline-item{position:relative;padding:0 0 17px}.timeline-item:before{content:"";position:absolute;left:-25px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--blue);border:2px solid var(--bg)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.hidden{display:none!important}.notice{border-left:4px solid var(--blue);padding:12px 14px;background:rgba(61,139,253,.08);border-radius:10px}.checkbox-line{display:flex;gap:8px;align-items:center}.checkbox-line input{width:auto}.modal{position:fixed;inset:0;background:rgba(0,0,0,.82);z-index:100;display:grid;place-items:center;padding:20px}.modal-card{width:min(560px,100%);background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:18px}.modal video{width:100%;border-radius:12px;background:#000}.footer{color:var(--muted);font-size:.77rem;text-align:center;padding:30px 0}
@media(max-width:900px){.task-grid,.admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.status-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.split{grid-template-columns:1fr}}
@media(max-width:600px){.shell{padding:12px}.task-grid,.admin-grid,.status-grid,.form-grid,.two-col{grid-template-columns:1fr}.task-card{min-height:112px}.page-head{flex-direction:column}.topbar-inner{align-items:flex-start}.nav-actions{justify-content:flex-end}.component-row{grid-template-columns:1fr 110px auto}.btn{min-height:44px}.marker{width:29px;height:29px}}

/* v0.0.3 touch-first plan viewer and management */
.plan-viewer{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#050b13}.plan-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:9px;background:var(--panel);border-bottom:1px solid var(--line)}.toolbar-spacer{flex:1}.plan-viewport{position:relative;height:min(72vh,820px);min-height:430px;overflow:hidden;touch-action:none;background:#0a0f16;cursor:grab}.plan-viewport:active{cursor:grabbing}.plan-stage{position:absolute;left:0;top:0;max-width:none!important;border:0;border-radius:0;overflow:visible;transform-origin:0 0;will-change:transform;--plan-inverse-scale:1}.plan-stage img{display:block;max-width:none!important;pointer-events:none;user-select:none;-webkit-user-drag:none}.plan-stage .marker{width:30px;height:30px;transform:translate(-50%,-50%) scale(var(--plan-inverse-scale));transform-origin:center;z-index:6;touch-action:none}.plan-stage .marker:hover{transform:translate(-50%,-50%) scale(var(--plan-inverse-scale))}.plan-stage .marker:before{content:"";position:absolute;inset:-8px;border-radius:50%}.plan-stage .marker-label{z-index:7;transform:translate(-50%,calc(-50% + 25px)) scale(var(--plan-inverse-scale));transform-origin:center top}.marker.draft{background:var(--amber)!important;border-style:dashed;outline:4px solid rgba(255,182,72,.22);cursor:move}.draft-label{border-style:dashed;border-color:var(--amber)}.plan-card{padding:10px}.plan-editor-split{grid-template-columns:minmax(0,3fr) minmax(260px,1fr)}.drop-zone{min-height:150px;border:2px dashed var(--line);border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px;padding:24px;cursor:pointer;background:#081522;transition:.15s}.drop-zone:hover,.drop-zone.dragover{border-color:var(--blue);background:rgba(61,139,253,.09)}.drop-zone strong{font-size:1.1rem}.drop-zone span,.drop-zone small{color:var(--muted)}.catalog-row{display:grid;grid-template-columns:minmax(120px,1fr) auto auto auto auto;gap:7px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:12px;background:#0a1726}.catalog-row input,.rename-row input{width:100%;border-radius:9px;border:1px solid var(--line);background:#081522;color:var(--text);padding:8px 10px}.rename-row{display:flex;gap:8px;margin-top:10px}.inline-form{display:inline}.actions.compact{margin-top:8px}.plan-archived{opacity:.62}.location-marker{pointer-events:none}.location-marker:not(.hidden){animation:pcmPulse .55s ease-out}.location-label{pointer-events:none}@keyframes pcmPulse{0%{box-shadow:0 0 0 0 rgba(255,182,72,.8)}100%{box-shadow:0 0 0 18px rgba(255,182,72,0)}}
@media(max-width:900px){.plan-editor-split{grid-template-columns:1fr}.plan-viewport{height:66vh;min-height:380px}.catalog-row{grid-template-columns:1fr auto}.catalog-row .badge{justify-self:start}.catalog-row .btn{width:100%}}
@media(max-width:600px){.plan-viewport{height:58vh;min-height:330px}.plan-toolbar{gap:6px}.plan-toolbar .btn{min-height:44px}.plan-stage .marker{width:32px;height:32px}.plan-stage .marker-label{font-size:.72rem}.drop-zone{min-height:130px}.catalog-row{grid-template-columns:1fr 1fr}.catalog-row input{grid-column:1/-1}.rename-row{flex-direction:column}}
