.reservation-control{position:relative;display:inline-flex;align-items:center;line-height:0}.reservation-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:9px;cursor:pointer;border:1px solid var(--button-border);background:var(--button-bg);color:var(--muted-text);transition:background .12s ease,border-color .12s ease,color .12s ease,box-shadow .12s ease}.reservation-icon-btn:hover:not(:disabled){background:var(--button-hover-bg);border-color:var(--button-hover-border)}.reservation-icon-btn:focus-visible{outline:none;box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 45%,transparent)}.reservation-icon-btn:disabled{opacity:.4;cursor:not-allowed}.reservation-icon-btn svg{width:16px;height:16px;flex-shrink:0}.reservation-icon-btn.is-free{color:var(--brand);border-color:color-mix(in srgb,var(--brand) 40%,var(--button-border));background:color-mix(in srgb,var(--brand) 8%,var(--button-bg))}.reservation-icon-btn.is-free:hover:not(:disabled){color:var(--brand-strong);border-color:var(--brand);background:color-mix(in srgb,var(--brand) 15%,var(--button-bg))}.reservation-icon-btn.is-mine{color:#fff;background:var(--brand);border-color:var(--brand-strong)}.reservation-icon-btn.is-mine:hover:not(:disabled){background:var(--brand-strong);border-color:var(--brand-strong)}.reservation-icon-btn.is-other{color:var(--danger-text);border-color:var(--danger-border);background:var(--danger-bg)}.reservation-tooltip{position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%) translateY(-3px);z-index:60;min-width:max-content;max-width:240px;padding:7px 10px;border-radius:8px;background:var(--panel-bg, #1f2937);color:var(--app-text);border:1px solid var(--card-border);box-shadow:var(--panel-shadow, 0 8px 24px rgba(0, 0, 0, .28));font-size:12px;font-weight:600;line-height:1.4;text-align:center;white-space:normal;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .12s ease,transform .12s ease}.reservation-tooltip:before{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-bottom-color:var(--card-border)}.reservation-control:hover .reservation-tooltip,.reservation-icon-btn:focus-visible+.reservation-tooltip{opacity:1;visibility:visible;transform:translate(-50%) translateY(0)}.reservation-btn{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:13px;font-weight:600;line-height:1;padding:8px 14px;border-radius:8px;cursor:pointer;border:1px solid var(--button-border);background:var(--button-bg);color:var(--app-text);transition:background .12s ease,border-color .12s ease,opacity .12s ease}.reservation-btn:hover:not(:disabled){background:var(--button-hover-bg);border-color:var(--button-hover-border)}.reservation-btn:disabled{opacity:.5;cursor:not-allowed}.reservation-btn--primary{background:var(--brand);border-color:var(--brand-strong);color:#fff}.reservation-btn--primary:hover:not(:disabled){background:var(--brand-strong);border-color:var(--brand-strong)}.reservation-btn--ghost{background:transparent}.reservation-btn--danger{background:transparent;color:var(--danger-text);border-color:var(--danger-border);margin-right:auto}.reservation-btn--danger:hover:not(:disabled){background:var(--danger-bg)}.reservation-modal-backdrop{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;background:var(--panel-overlay, rgba(10, 20, 24, .55));-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.reservation-modal{width:100%;max-width:420px;background:var(--panel-bg, var(--card-bg));color:var(--app-text);border:1px solid var(--card-border);border-radius:14px;box-shadow:var(--panel-shadow, 0 20px 60px rgba(0, 0, 0, .35));padding:20px;display:flex;flex-direction:column;gap:14px;text-align:left}.reservation-modal-title{font-size:16px;font-weight:600}.reservation-modal-help{margin:0;font-size:12.5px;line-height:1.5;color:var(--muted-text)}.reservation-note-block{font-size:12.5px;line-height:1.5;padding:10px 12px;border-radius:8px;border:1px solid var(--card-border);background:var(--card-accent-bg, var(--input-bg));color:var(--app-text);white-space:pre-wrap}.reservation-field{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:600}.reservation-field--stacked{flex-direction:column;align-items:stretch;gap:6px}.reservation-field>span{color:var(--app-text)}.reservation-field select,.reservation-field textarea{font:inherit;font-size:13px;font-weight:500;padding:8px 10px;border-radius:8px;border:1px solid var(--input-border);background:var(--input-bg);color:var(--input-text);flex:1}.reservation-field textarea{resize:vertical;min-height:46px}.reservation-modal-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:2px}.reservation-error{font-size:12px;color:var(--danger-text)}
