*{box-sizing:border-box}body{color:#1d1d1f;background:#f6f6f4;margin:0;font:14px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}main{padding:16px 20px}.pad{padding:20px}h2{margin:4px 0 12px;font-size:20px}h3{margin:16px 0 6px;font-size:16px}h4{margin:10px 0 4px}a{color:#1a5fb4}button{font:inherit;cursor:pointer;background:#fff;border:1px solid #bbb;border-radius:4px;margin:2px;padding:4px 10px}button:hover{background:#f0f0f0}button:disabled{opacity:.5;cursor:default}button.active,button.primary{color:#fff;background:#1a5fb4;border-color:#1a5fb4}button.link{color:#1a5fb4;text-align:left;background:0 0;border:0;margin:0;padding:0}button.pick{display:inline-block}input,select,textarea{font:inherit;background:#fff;border:1px solid #bbb;border-radius:4px;padding:4px 6px}textarea{width:100%}table{border-collapse:collapse;background:#fff;width:100%;margin:6px 0}th,td{text-align:left;vertical-align:top;border-bottom:1px solid #e3e3e3;padding:5px 8px}th{background:#f0f0ee;font-size:13px;font-weight:600}tbody tr:hover{background:#fafaf5}tr.sel{background:#eef4ff!important}tr.warn{background:#fff6d6}tr.struck td{color:#888;text-decoration:line-through}.r{text-align:right}.mono{font-family:ui-monospace,monospace;font-size:12px}.muted{color:#6b6b6b}.small{font-size:12px}.err{color:#b00020}.ok{color:#1f7a3a}.clip{text-overflow:ellipsis;white-space:nowrap;max-width:360px;overflow:hidden}.row{flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0;display:flex}.spacer{flex:1}.card{background:#fff;border:1px solid #ddd;border-radius:6px;margin:8px 0;padding:10px 12px}.draft{background:#f3f0ff;border:1px dashed #7d6bd6;border-radius:6px;margin:10px 0;padding:10px}.field{flex-direction:column;gap:2px;margin:2px 4px 2px 0;display:inline-flex}.field>span{color:#6b6b6b;font-size:12px}ul.plain{margin:4px 0;padding:0;list-style:none}ul.cols{columns:2}.top{background:#fff;border-bottom:1px solid #ddd;flex-wrap:wrap;align-items:center;gap:12px;padding:8px 20px;display:flex}.top nav a{color:#333;margin-right:12px;text-decoration:none}.top nav a.active{color:#1a5fb4;font-weight:600}.split{grid-template-columns:minmax(0,3fr) minmax(320px,2fr);gap:16px;display:grid}.split3{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}@media (width<=1000px){.split,.split3{grid-template-columns:1fr}}.st{background:#eee;border-radius:10px;margin-right:4px;padding:0 6px;font-size:12px;display:inline-block}.st-new{background:#ffe0e0}.st-in_progress,.st-in_work{background:#fff0c2}.st-booked,.st-done{background:#d9f2df}.st-lost,.st-cancelled,.st-no_show{color:#666;background:#e6e6e6}.st-closed{background:#dfe8f7}.st-awaiting_approval,.st-ai{background:#ece6ff}.login{background:#fff;border:1px solid #ddd;border-radius:8px;flex-direction:column;gap:8px;max-width:320px;margin:80px auto;padding:24px;display:flex}.modal{z-index:10;background:#0000004d;justify-content:center;align-items:flex-start;padding-top:80px;display:flex;position:fixed;inset:0}.modal .card{width:min(640px,94vw);max-height:80vh;overflow:auto}.totals{background:#fff;border:1px solid #ddd;border-radius:6px;margin:10px 0;padding:8px 12px}.actions{margin-top:16px}.kpis{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;margin:10px 0;display:grid}.kpi{background:#fff;border:1px solid #ddd;border-radius:6px;padding:10px}.kpi-v{font-size:22px;font-weight:600}.cal{background:#fff;border:1px solid #ddd;display:flex;overflow-x:auto}.cal-col{border-left:1px solid #eee;flex:1;min-width:160px}.cal-hours{flex:0 0 56px;min-width:56px}.cal-head{background:#f0f0ee;border-bottom:1px solid #ddd;height:32px;padding:6px;font-size:13px;font-weight:600}.cal-body{position:relative}.cal-cell{color:#888;border-bottom:1px solid #f0f0f0;padding:2px 4px;font-size:12px}.cal-cell.empty:hover{cursor:pointer;background:#eef4ff}.appt{cursor:pointer;background:#e4edfb;border:1px solid #b7c9e8;border-radius:4px;padding:2px 5px;font-size:12px;position:absolute;left:3px;right:3px;overflow:hidden}.appt.st-arrived,.appt.st-in_work{background:#fff0c2;border-color:#e3c867}.appt.st-done{background:#d9f2df;border-color:#8cc79a}.login form,.login>div{flex-direction:column;gap:8px;display:flex}.login .qr{width:200px;height:200px;image-rendering:pixelated;align-self:center}.login .secret{word-break:break-all}.login .codes{columns:2;margin:4px 0;padding:0;font-size:15px;list-style:none}
