:root{--bg: #0d0f14;--surface: #171a21;--surface-2: #20242e;--surface-3: #2a2f3a;--border: #2b313d;--border-strong: #3a414f;--text: #e8eaef;--muted: #98a1b3;--accent: #ff7a3d;--accent-hover: #ff9259;--accent-soft: rgba(255, 122, 61, .14);--danger: #f0595e;--danger-soft: rgba(240, 89, 94, .12);--ok: #44c95a;--radius: 10px;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 6px 20px rgba(0, 0, 0, .28);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .35)}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.5}a{color:var(--text);text-decoration:none;transition:color .12s ease}a:hover{color:var(--accent)}h1,h2,h3{margin:0 0 .5rem;font-weight:600}.container{max-width:960px;margin:0 auto;padding:1.5rem 1rem 4rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;margin-bottom:1rem;box-shadow:var(--shadow)}label{display:block;font-size:.85rem;color:var(--muted);margin-bottom:.25rem}input,select,textarea{width:100%;padding:.55rem .7rem;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;color:var(--text);font:inherit}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}input[type=checkbox]{width:auto}input[type=date],input[type=datetime-local],input[type=time],input[type=month],input[type=week]{color-scheme:dark;cursor:pointer}input[type=date]::-webkit-calendar-picker-indicator,input[type=datetime-local]::-webkit-calendar-picker-indicator,input[type=time]::-webkit-calendar-picker-indicator,input[type=month]::-webkit-calendar-picker-indicator,input[type=week]::-webkit-calendar-picker-indicator{filter:brightness(0) invert(1);opacity:.85;cursor:pointer;transition:opacity .12s ease}input[type=date]::-webkit-calendar-picker-indicator:hover,input[type=datetime-local]::-webkit-calendar-picker-indicator:hover,input[type=time]::-webkit-calendar-picker-indicator:hover,input[type=month]::-webkit-calendar-picker-indicator:hover,input[type=week]::-webkit-calendar-picker-indicator:hover{opacity:1}.field{margin-bottom:.9rem}.row{display:flex;gap:.75rem;flex-wrap:wrap}.row>*{flex:1 1 180px}button,.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1rem;background:var(--accent);color:#fff;border:none;border-radius:6px;cursor:pointer;font:inherit;font-weight:500}button:hover,.btn:hover{background:var(--accent-hover);text-decoration:none}button:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:var(--border)}.btn-danger{background:var(--danger-soft);color:var(--danger);border:1px solid transparent}.btn-danger:hover{background:var(--danger);color:#fff}.btn-sm{padding:.3rem .6rem;font-size:.85rem}.muted{color:var(--muted)}.error{color:var(--danger);font-size:.9rem;margin:.5rem 0}.hint{color:var(--accent);font-size:.85rem;margin:.4rem 0}.ok{color:var(--ok)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.6rem .5rem;border-bottom:1px solid var(--border)}th{color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.03em}tbody tr{transition:background .12s ease}tbody tr:hover{background:var(--surface-2)}td a{font-weight:500}.badge{display:inline-block;padding:.15rem .55rem;border-radius:999px;font-size:.75rem;background:var(--surface-2);border:1px solid var(--border)}.badge.inquiry{color:#7c8cff}.badge.pending{color:#d4a72c}.badge.confirmed{color:var(--ok)}.badge.cancelled{color:var(--danger)}.badge.completed{color:var(--muted)}.nav{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap}.nav .brand{font-weight:700;font-size:1.05rem;color:var(--text)}.nav a.link{color:var(--muted);padding:.4rem .6rem;border-radius:7px;transition:background .12s ease,color .12s ease}.nav a.link:hover{color:var(--text);background:var(--surface-2)}.nav a.link.active{color:var(--accent);background:var(--accent-soft);font-weight:600}.nav .spacer{flex:1}.lang a{color:var(--muted);font-size:.85rem;padding:0 .3rem}.lang a.current{color:var(--accent);font-weight:600}@media(min-width:900px){.layout{display:flex;align-items:stretch;min-height:100vh}.nav{position:sticky;top:0;align-self:flex-start;flex-direction:column;align-items:stretch;flex-wrap:nowrap;gap:.2rem;width:224px;height:100vh;overflow-y:auto;padding:1.25rem .75rem;border-bottom:none;border-right:1px solid var(--border)}.nav .brand{font-size:1.1rem;padding:0 .5rem 1rem;margin-bottom:.5rem;border-bottom:1px solid var(--border)}.nav a.link{display:block}.nav .spacer{flex:1}.nav .lang{padding:0 .5rem}.container{flex:1;min-width:0;max-width:none;margin:0;padding:2rem 2.5rem 4rem}}.auth-wrap{max-width:380px;margin:8vh auto;padding:0 1rem}.auth-foot{text-align:center;font-size:.9rem;margin:.6rem 0 0}.auth-foot a{color:var(--accent);font-weight:600}.auth-foot a:hover{text-decoration:underline}.auth-legal{text-align:center;font-size:.8rem;line-height:1.5;margin:.9rem auto 0;max-width:40ch}.auth-legal a{color:var(--accent);text-decoration:underline}.oauth-sep{display:flex;align-items:center;gap:.75rem;margin:1rem 0;color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}.oauth-sep:before,.oauth-sep:after{content:"";flex:1;height:1px;background:var(--border)}.btn-google{display:flex;align-items:center;justify-content:center;gap:.6rem;width:100%;background:#fff;color:#3c4043;border:1px solid var(--border);font-weight:600}.btn-google:hover{background:#f7f8f8}.ghost{background:transparent;color:var(--muted);border:1px solid var(--border)}.ghost:hover{background:var(--surface)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:auto;grid-auto-rows:minmax(96px,1fr);gap:6px;min-height:calc(100vh - 170px)}.cal-head{text-align:center;color:var(--muted);font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:.3rem 0}.cal-cell{display:flex;flex-direction:column;gap:2px;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.4rem;font-size:.8rem;overflow:hidden}.cal-cell.empty{background:transparent;border:none}.cal-date{color:var(--muted);font-size:.78rem;font-weight:600}.cal-ev{display:flex;align-items:center;gap:5px;padding:3px 6px;border-radius:5px;border-left:4px solid var(--ev-color, var(--muted));background:var(--ev-bg, var(--surface-2));color:var(--text);font-size:.74rem;cursor:pointer;transition:filter .12s ease}.cal-ev:hover{filter:brightness(1.25)}.cal-ev-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-confirmed{--ev-color: var(--ok);--ev-bg: rgba(68, 201, 90, .24)}.status-pending{--ev-color: #d4a72c;--ev-bg: rgba(212, 167, 44, .24)}.status-completed{--ev-color: #5b8def;--ev-bg: rgba(91, 141, 239, .24)}.status-cancelled{--ev-color: var(--danger);--ev-bg: rgba(240, 89, 94, .2)}.cal-ev.status-cancelled .cal-ev-name{color:var(--muted);text-decoration:line-through}.cal-ev .dot,.cal-legend .dot{flex:none;width:7px;height:7px;border-radius:50%;background:var(--ok)}.cal-ev .dot.unpaid,.cal-legend .dot.unpaid{background:transparent;border:1px solid var(--muted)}.cal-legend{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem 1rem;margin-bottom:.75rem;font-size:.78rem;color:var(--muted)}.cal-legend .leg{display:inline-flex;align-items:center;gap:.4rem}.cal-legend .sw{width:11px;height:11px;border-radius:3px;border-left:3px solid var(--ev-color);background:var(--ev-bg)}.cal-legend .leg-sep{width:1px;height:14px;background:var(--border-strong)}.modal-backdrop{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:1rem;background:#0000008c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:modal-fade .12s ease}.modal{width:100%;max-width:440px;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow);animation:modal-pop .14s ease}.modal-head{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;border-bottom:1px solid var(--border)}.modal-head h2{margin:0;font-size:1.15rem;flex:1}.modal-close{background:transparent;border:none;color:var(--muted);padding:.25rem .45rem;font-size:.95rem}.modal-close:hover{background:var(--surface-2);color:var(--text)}.modal-body{padding:1.25rem}.modal-tags{display:flex;gap:.5rem;margin-bottom:1rem}.modal-info{display:grid;grid-template-columns:auto 1fr;gap:.5rem 1rem;margin:0}.modal-info dt{color:var(--muted);font-size:.85rem}.modal-info dd{margin:0}.modal-foot{display:flex;justify-content:flex-end;gap:.6rem;padding:1rem 1.25rem;border-top:1px solid var(--border)}@keyframes modal-fade{0%{opacity:0}}@keyframes modal-pop{0%{opacity:0;transform:translateY(8px) scale(.98)}}.toast-host{position:fixed;top:1rem;left:50%;transform:translate(-50%);z-index:100;display:flex;flex-direction:column;gap:.5rem;width:min(92vw,360px);pointer-events:none}@media(min-width:900px){.toast-host{top:1.25rem;left:auto;right:1.25rem;transform:none}}.toast{pointer-events:auto;display:flex;align-items:center;gap:.6rem;padding:.7rem .85rem;background:var(--surface-2);border:1px solid var(--border-strong);border-left:3px solid var(--muted);border-radius:8px;box-shadow:var(--shadow);color:var(--text);font-size:.9rem;animation:toast-in .18s ease}.toast-success{border-left-color:var(--ok)}.toast-error{border-left-color:var(--danger)}.toast-info{border-left-color:var(--accent)}.toast-icon{flex:none;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;font-size:.72rem;font-weight:700;color:#fff}.toast-success .toast-icon{background:var(--ok)}.toast-error .toast-icon{background:var(--danger)}.toast-info .toast-icon{background:var(--accent)}.toast-text{flex:1}.toast-close{flex:none;background:transparent;border:none;color:var(--muted);padding:0 .2rem;font-size:1.1rem;line-height:1}.toast-close:hover{background:transparent;color:var(--text)}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}}.toolbar{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:1rem}.toolbar .spacer{flex:1}.cf-row{display:grid;grid-template-columns:1.2fr 1.2fr 1fr auto auto auto;gap:.5rem;align-items:center;margin-bottom:.5rem}.cf-row .reqcol{display:flex;align-items:center;gap:.3rem;white-space:nowrap}@media(max-width:640px){.cf-row{grid-template-columns:1fr 1fr}}
