*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
    --bg:#0f172a;--bg2:#1e293b;--surface:rgba(255,255,255,0.05);
    --text:#f1f5f9;--text2:#94a3b8;--accent:#6366f1;--accent-hover:#818cf8;
    --border:rgba(255,255,255,0.1);--radius:10px;
    --green:#22c55e;--green-bg:rgba(34,197,94,0.15);
    --amber:#f59e0b;--red:#ef4444;
}
html,body{height:100%;font-family:'Inter',system-ui,sans-serif;background:var(--bg);color:var(--text)}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}

/* Layout */
.page-center{min-height:100vh;display:flex;align-items:flex-start;justify-content:center;padding:2rem 1rem;padding-top:4vh}
.card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:2rem;max-width:560px;width:100%}
.card h1{font-size:1.5rem;font-weight:700;margin-bottom:0.25rem}
.card .subtitle{color:var(--text2);font-size:0.9rem;margin-bottom:1.5rem}

.meeting-page{min-height:100vh;display:flex;flex-direction:column}
.meeting-header{background:linear-gradient(135deg,#1e3a5f,#4f46e5);padding:1.25rem 1.5rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:0.75rem}
.meeting-header h1{font-size:1.25rem;color:#fff}
.meeting-header .meta{font-size:0.8rem;color:rgba(255,255,255,0.7);margin-top:0.15rem}
.meeting-body{flex:1;display:flex;gap:1rem;padding:1rem;max-width:1200px;margin:0 auto;width:100%}
.meeting-main{flex:1;min-width:0}
.sidebar{width:280px;flex-shrink:0;display:flex;flex-direction:column;gap:1rem}
.panel{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}
.panel h3{font-size:0.8rem;text-transform:uppercase;letter-spacing:0.06em;color:var(--text2);margin-bottom:0.75rem}

/* Form elements */
.form-group{margin-bottom:1rem}
.form-group label{display:block;font-size:0.8rem;font-weight:500;color:var(--text2);margin-bottom:0.35rem}
.form-row{display:flex;gap:1rem}
.form-row .form-group{flex:1}
.input{width:100%;padding:0.55rem 0.75rem;background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text);font-family:inherit;font-size:0.88rem;outline:none;transition:border-color 0.15s}
.input:focus{border-color:var(--accent)}
select.input{cursor:pointer}
.input.sm{padding:0.4rem 0.6rem;font-size:0.82rem}
.radio-group{display:flex;gap:1rem;padding-top:0.3rem}
.radio-group label{display:flex;align-items:center;gap:0.35rem;font-size:0.88rem;cursor:pointer;color:var(--text)}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:0.4rem;padding:0.55rem 1rem;font-family:inherit;font-size:0.85rem;font-weight:500;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;transition:all 0.15s;white-space:nowrap}
.btn:hover{background:rgba(255,255,255,0.1)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.primary:hover{background:var(--accent-hover)}
.btn.danger{color:var(--red);border-color:rgba(239,68,68,0.3)}
.btn.danger:hover{background:rgba(239,68,68,0.1)}
.btn.full{width:100%}
.btn.sm{padding:0.35rem 0.7rem;font-size:0.8rem}
.btn:disabled{opacity:0.4;cursor:default;pointer-events:none}

/* Link result */
.result{margin-top:1.25rem;padding:1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}
.result label{font-size:0.8rem;color:var(--text2);margin-bottom:0.4rem;display:block}
.link-box{display:flex;gap:0.5rem}
.link-box .input{flex:1}

/* Join bar */
.join-bar{display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap;padding:0.75rem 1rem;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:1rem}
.join-bar .input{width:auto;flex:1;min-width:120px}
.joined-as{font-size:0.85rem;color:var(--text2)}
.tz-lbl{font-size:0.8rem;color:var(--text2)}

/* Availability Grid */
.grid-wrap{overflow-x:auto;margin-bottom:1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg2)}
.grid-table{width:100%;border-collapse:collapse;font-size:0.8rem}
.grid-table th{padding:0.5rem 0.4rem;font-weight:600;font-size:0.75rem;color:var(--text2);border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg2);z-index:2;white-space:nowrap;text-align:center}
.grid-table td{padding:0;border:1px solid rgba(255,255,255,0.04);text-align:center;height:36px;min-width:80px;position:relative}
.grid-table .time-label{font-size:0.75rem;color:var(--text2);padding:0 0.5rem;white-space:nowrap;text-align:right;border-right:1px solid var(--border);background:var(--bg2);position:sticky;left:0;z-index:1;min-width:70px}
.slot{cursor:default;transition:background 0.1s;user-select:none}
.slot.clickable{cursor:pointer}
.slot.clickable:hover{outline:2px solid var(--accent);outline-offset:-2px;z-index:1}
.slot .count{font-size:0.7rem;font-weight:600;color:rgba(255,255,255,0.8)}
.slot .check{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:1rem;color:#fff;font-weight:700;text-shadow:0 1px 3px rgba(0,0,0,0.4)}
.slot.mine{box-shadow:inset 0 0 0 2px var(--accent)}

/* Legend */
.grid-legend{display:flex;align-items:center;gap:1rem;padding:0.5rem 0;font-size:0.75rem;color:var(--text2);margin-bottom:0.5rem;flex-wrap:wrap}
.legend-item{display:flex;align-items:center;gap:0.3rem}
.legend-swatch{width:16px;height:12px;border-radius:2px;border:1px solid rgba(255,255,255,0.1)}

/* Best times */
.best-item{padding:0.6rem;border-radius:6px;cursor:pointer;transition:background 0.15s;margin-bottom:0.4rem;border:1px solid transparent}
.best-item:hover{background:var(--surface)}
.best-item.selected{border-color:var(--accent);background:rgba(99,102,241,0.1)}
.best-info{font-size:0.85rem;margin-bottom:0.3rem}
.best-bar{height:6px;background:rgba(255,255,255,0.08);border-radius:3px;overflow:hidden;position:relative}
.best-fill{height:100%;background:var(--green);border-radius:3px;transition:width 0.3s}
.best-count{font-size:0.7rem;color:var(--text2);margin-top:0.2rem}

/* Respondent list */
.respondent{display:flex;align-items:center;justify-content:space-between;padding:0.35rem 0;font-size:0.85rem;border-bottom:1px solid rgba(255,255,255,0.04)}
.respondent:last-child{border-bottom:none}
.resp-tz{font-size:0.7rem;color:var(--text2)}

/* Confirmed banner */
.confirmed{background:var(--green-bg);border:1px solid rgba(34,197,94,0.3);border-radius:var(--radius);padding:1rem;margin-bottom:1rem;text-align:center}
.confirmed h3{color:var(--green);margin-bottom:0.3rem}
.confirmed p{font-size:0.9rem;color:var(--text2);margin-bottom:0.75rem}
.confirmed .btn-group{display:flex;gap:0.5rem;justify-content:center}

/* Hint text */
.hint{font-size:0.8rem;color:var(--text2)}

/* Toast */
.toast{position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%) translateY(20px);background:#334155;color:#fff;padding:0.6rem 1.25rem;border-radius:8px;font-size:0.85rem;opacity:0;pointer-events:none;transition:all 0.3s;z-index:9000}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* Page column wrapper */
.page-col{width:100%;max-width:560px;display:flex;flex-direction:column;gap:1.5rem}

/* Your Meetings */
.my-mtg-section{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;padding-bottom:0.5rem}
.my-mtg-heading{font-size:0.8rem;font-weight:600;text-transform:uppercase;letter-spacing:0.06em;color:var(--text2);margin-bottom:0.75rem}
.my-mtg-row{display:flex;align-items:center;gap:0.75rem;padding:0.65rem 0;border-top:1px solid var(--border);text-decoration:none;color:var(--text);transition:opacity 0.15s}
.my-mtg-row:first-of-type{border-top:none}
.my-mtg-row:hover{opacity:0.8;text-decoration:none}
.my-mtg-title-text{flex:1;min-width:0;font-size:0.9rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.my-mtg-date{font-size:0.75rem;color:var(--text2);white-space:nowrap}
.mtg-status{font-size:0.7rem;font-weight:500;padding:0.15rem 0.5rem;border-radius:4px;white-space:nowrap}
.mtg-status.open{background:rgba(255,255,255,0.06);color:var(--text2)}
.mtg-status.scheduled{background:var(--green-bg);color:var(--green)}
.my-mtg-arrow{width:16px;height:16px;color:var(--text2);flex-shrink:0}

/* Error/loading screens */
.center-msg{min-height:80vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem}
.center-msg h2{margin-bottom:0.5rem}
.center-msg p{color:var(--text2);margin-bottom:1.5rem}
.loading{text-align:center;padding:4rem;color:var(--text2)}

/* Responsive */
@media(max-width:768px){
    .meeting-body{flex-direction:column}
    .sidebar{width:100%}
    .form-row{flex-direction:column;gap:0.75rem}
    .card{padding:1.5rem}
    .join-bar .input{min-width:100px}
}
@media(max-width:480px){
    .join-bar{flex-direction:column;align-items:stretch}
    .join-bar .input{width:100%}
}
