
:root{--bg:#f7f9fc;--text:#171c26;--muted:#6f7787;--primary:#3a63d8;--accent:#5ec9a1;--danger:#e45b6b;--card:#fff;--border:#e0e5ee;--sunday:#111;}
*{box-sizing:border-box} html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,Segoe UI,Roboto,Arial,sans-serif}
.topbar{position:sticky;top:0;background:var(--card);border-bottom:1px solid var(--border);padding:14px 18px;z-index:10;display:flex;align-items:center;gap:10px}
.topbar img{width:28px;height:28px}
.container{padding:18px}
h1{font-size:26px;margin:12px 0 8px} h2{font-size:20px;margin:12px 0 8px}
.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:14px;margin:12px 0}
.grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
.cell{border:1px solid var(--border);border-radius:12px;background:#f1f4f9;min-height:130px;padding:8px;position:relative}
.cell .edit{position:absolute;top:8px;right:8px;font-size:12px;border:1px solid var(--border);background:#fff;border-radius:8px;padding:2px 6px;cursor:pointer}
.cell.sunday{background:var(--sunday);color:#fff;border-color:#000}
.row{display:flex;gap:8px;align-items:center;justify-content:space-between}
.badge{background:#e9eefb;color:#243869;border-radius:999px;padding:2px 8px}
.table{width:100%;border-collapse:collapse}
.table th,.table td{border:1px solid var(--border);padding:6px 8px;text-align:left;font-size:13px}
.btn{display:inline-block;background:var(--primary);color:#fff;border:none;border-radius:12px;padding:10px 14px;font-weight:600;margin-right:8px;cursor:pointer}
.btn.ghost{background:transparent;color:#333;border:1px solid var(--border)}
.small{color:#6f7787;font-size:12px}
.nav{position:sticky;bottom:0;background:var(--card);border-top:1px solid var(--border);display:flex;justify-content:space-around;padding:10px 6px}
.nav button{background:none;border:none;color:#6f7787;font-size:13px}
.nav button.active{color:#3a63d8;font-weight:600}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.35);display:none;align-items:center;justify-content:center;padding:18px}
.modal .box{background:#fff;border:1px solid var(--border);border-radius:16px;padding:16px;max-width:640px;width:100%}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.grid3{display:grid;grid-template-columns:1fr 1fr;gap:12px}
select,input[type="text"],input[type="number"]{width:100%;padding:8px;border:1px solid var(--border);border-radius:10px}
.warn{background:#fff7da;border:1px dashed #f2d46b;border-radius:10px;padding:8px;margin-top:8px;font-size:12px;color:#6b5d2a}
.tag{display:inline-block;background:#eef2ff;border:1px solid #d7defa;border-radius:999px;padding:2px 8px;margin:2px 6px 0 0}
