:root{--primary-color:#6366f1;--primary-hover:#4f46e5;--danger-color:#ef4444;--danger-hover:#dc2626;--bg-color:#f8fafc;--surface-color:#fff;--text-primary:#0f172a;--text-secondary:#64748b;--border-color:#e2e8f0;--shadow-sm:0 1px 3px #0000001a, 0 1px 2px #0000000f;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -1px #0000000f;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -2px #0000000d}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-color);color:var(--text-primary);font-family:Outfit,sans-serif;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex}.app-header{background-color:var(--surface-color);box-shadow:var(--shadow-sm);z-index:10;justify-content:space-between;align-items:center;padding:1rem 2rem;display:flex}.actions{align-items:center;gap:.5rem;display:flex}.app-header h1{background:linear-gradient(135deg,#6366f1,#a855f7);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:1.5rem;font-weight:600}.btn{cursor:pointer;border:none;border-radius:8px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-family:Outfit,sans-serif;font-size:.9rem;font-weight:500;transition:all .2s;display:flex}.btn.primary{background-color:var(--primary-color);color:#fff}.btn.primary:hover{background-color:var(--primary-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn.danger{background-color:var(--danger-color);color:#fff}.btn.danger:hover{background-color:var(--danger-hover)}.btn.secondary{color:var(--text-primary);background-color:#f1f5f9}.btn.secondary:hover{background-color:#e2e8f0}.btn-icon{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.25rem;transition:all .2s;display:flex}.btn-icon:hover{color:var(--text-primary);background-color:var(--bg-color)}.canvas-container{background-color:var(--bg-color);flex:1;position:relative;overflow:auto}.canvas-container:active{cursor:grabbing}.canvas{background-image:radial-gradient(var(--border-color) 2px, transparent 2px);transform-origin:0 0;background-size:30px 30px;width:5000px;height:5000px;position:absolute;top:0;left:0}.table-group{cursor:grab;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;display:flex;position:absolute}.table-group:active{cursor:grabbing}.table{z-index:2;background:linear-gradient(145deg,#fff,#f0f0f0);border:2px solid #e2e8f0;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:120px;height:120px;transition:all .2s;display:flex;position:relative;box-shadow:8px 8px 16px #d1d5db,-8px -8px 16px #fff}.table:hover{border-color:var(--primary-color);box-shadow:0 0 0 4px #6366f11a}.table-number{color:var(--text-primary);pointer-events:none;font-size:1.1rem;font-weight:600}.table-name-label{color:var(--text-secondary);pointer-events:none;text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:90%;margin-top:2px;font-size:.8rem;font-weight:500;overflow:hidden}.chair{background-color:var(--surface-color);width:40px;height:40px;box-shadow:var(--shadow-sm);border:2px solid var(--border-color);z-index:1;cursor:pointer;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex;position:absolute}.chair:hover{border-color:var(--primary-color);z-index:3;transform:scale(1.1)!important}.chair.occupied{border-color:var(--primary-color);color:var(--primary-color);background-color:#e0e7ff}.chair-label{pointer-events:none;font-size:.8rem;font-weight:600}.guest-name-label{color:var(--primary-color);white-space:nowrap;pointer-events:none;box-shadow:var(--shadow-sm);z-index:5;background-color:#ffffffe6;border-radius:4px;padding:2px 6px;font-size:.85rem;font-weight:600;position:absolute;top:50%;left:50%}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;opacity:1;background-color:#0f172a66;justify-content:center;align-items:center;width:100vw;height:100vh;transition:opacity .3s;display:flex;position:fixed;top:0;left:0}.modal-backdrop.hidden{opacity:0;pointer-events:none}.modal{background-color:var(--surface-color);width:100%;max-width:400px;box-shadow:var(--shadow-lg);border-radius:16px;transition:transform .3s;transform:translateY(0)}.modal-backdrop.hidden .modal{transform:translateY(20px)}.modal-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.modal-header h2{font-size:1.25rem;font-weight:600}.modal-body{padding:1.5rem}.form-group{flex-direction:column;gap:.5rem;display:flex}.form-group label{color:var(--text-secondary);font-size:.9rem;font-weight:500}.form-group input{border:1px solid var(--border-color);border-radius:8px;outline:none;padding:.75rem 1rem;font-family:inherit;font-size:1rem;transition:all .2s}.form-group input:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #6366f11a}.modal-footer{border-top:1px solid var(--border-color);justify-content:flex-end;gap:1rem;padding:1.25rem 1.5rem;display:flex}.entrance-group{z-index:5}.entrance{background-color:var(--surface-color);border:4px double var(--text-secondary);width:200px;height:60px;box-shadow:var(--shadow-md);z-index:2;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;transition:all .2s;display:flex;position:relative}.entrance:hover{border-color:var(--primary-color);box-shadow:0 0 0 4px #6366f11a}.entrance.vertical{width:60px;height:200px}.entrance-label{color:var(--text-primary);pointer-events:none;text-align:center;font-size:1rem;font-weight:600}.entrance.vertical .entrance-label{white-space:nowrap;transform:rotate(-90deg)}.table.sweetheart{border-radius:40px;width:160px;height:80px}@media print{@page{size:landscape;margin:10mm}body,#app{background:#fff!important;height:100vh!important;margin:0!important;padding:0!important;overflow:hidden!important}.canvas-container{background:#fff!important;width:100%!important;height:100%!important;overflow:hidden!important}.app-header,.modal-backdrop{display:none!important}.canvas{transform-origin:0 0!important;background-image:none!important;position:relative!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}}@media (width<=768px){.app-header{flex-direction:column;align-items:flex-start;gap:.75rem;padding:.75rem 1rem}.app-header h1{font-size:1.25rem}.actions{flex-wrap:wrap;justify-content:flex-start;width:100%;padding-bottom:.5rem;overflow-x:auto}.btn{white-space:nowrap;padding:.4rem .75rem;font-size:.85rem}.modal{width:95%;max-width:none;padding:1.5rem}}
