:root{--bg: #0f1218;--panel: #161b24;--panel-2: #1d2330;--border: #2a313f;--text: #e6e9ef;--text-dim: #8b93a3;--accent: #5ce1b8;--accent-dim: #22352f;--busy: #3a4252;--event: #3a5f8a;--event-2: #6a4f9e;--event-3: #8a5a3a;--danger: #ef6f6f}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;min-height:100vh}#app{max-width:1100px;margin:0 auto;padding:20px 16px 60px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:18px}.topbar h1{font-size:18px;margin:0;font-weight:600}.topbar-left{display:flex;align-items:center;gap:10px}.back-home{font-size:12px;color:var(--text-dim);text-decoration:none;border:1px solid var(--border);padding:4px 9px;border-radius:999px}.back-home:hover{border-color:var(--accent);color:var(--accent)}.nav-group,.view-group,.auth-group{display:flex;align-items:center;gap:6px}button{background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:7px 12px;font-size:13px;font-weight:500;cursor:pointer;font-family:inherit}button:hover{border-color:var(--accent)}button.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}button.primary{background:var(--accent);color:#08130f;border-color:var(--accent)}.auth-group input[type=password]{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:7px 10px;font-size:13px;width:140px;font-family:inherit}.auth-badge{font-size:12px;padding:4px 9px;border-radius:999px;background:var(--accent-dim);color:var(--accent);border:1px solid var(--accent)}.auth-error{color:var(--danger);font-size:12px;margin-top:6px}.range-label{font-size:14px;color:var(--text-dim);margin:0 10px;min-width:150px;text-align:center}.week-grid{background:var(--panel);border:1px solid var(--border);border-radius:12px;overflow:hidden}.week-head{display:grid;grid-template-columns:56px repeat(7,1fr);border-bottom:1px solid var(--border)}.week-head>div{padding:10px 6px;font-size:12px;color:var(--text-dim);text-align:center;border-left:1px solid var(--border)}.week-head>div:first-child{border-left:none}.week-head .day-num{font-size:15px;color:var(--text);font-weight:600;margin-top:2px}.week-head .today .day-num{color:var(--accent)}.week-body{display:grid;grid-template-columns:56px repeat(7,1fr);position:relative;max-height:68vh;overflow-y:auto}.hour-col{border-right:1px solid var(--border)}.hour-col .hour-label{height:48px;font-size:11px;color:var(--text-dim);text-align:right;padding-right:6px;border-bottom:1px solid var(--border);transform:translateY(-6px)}.day-col{position:relative;border-left:1px solid var(--border)}.day-col .hour-row{height:48px;border-bottom:1px solid var(--border)}.event-block{position:absolute;left:2px;right:2px;border-radius:6px;padding:3px 6px;font-size:11px;overflow:hidden;background:var(--event);color:#e9f1ff;border:1px solid rgba(255,255,255,.08)}.event-block.busy{background:var(--busy);color:var(--text-dim);font-style:italic}.event-block .ev-title{font-weight:600;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-block .ev-time{opacity:.8}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:12px;overflow:hidden}.month-head-cell{background:var(--panel);padding:8px 10px;font-size:12px;color:var(--text-dim);text-align:center}.month-cell{background:var(--panel);min-height:92px;padding:6px 6px 8px}.month-cell.other-month{opacity:.35}.month-cell.today{outline:1px solid var(--accent)}.month-cell .date-num{font-size:12px;color:var(--text-dim);margin-bottom:4px}.month-cell .mini-event{font-size:11px;background:var(--event);color:#e9f1ff;border-radius:4px;padding:1px 5px;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.month-cell .mini-event.busy{background:var(--busy);color:var(--text-dim)}.month-cell .more-count{font-size:10px;color:var(--text-dim)}.hint{font-size:12px;color:var(--text-dim);margin-top:14px;line-height:1.5}.loading{color:var(--text-dim);font-size:13px;padding:20px 0}.day-col.clickable{cursor:pointer}.day-col.clickable:hover{background:#5ce1b80a}.private-panel{margin-top:18px;display:grid;grid-template-columns:1fr 1fr;gap:14px}@media (max-width: 720px){.private-panel{grid-template-columns:1fr}}.panel-block{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:14px}.panel-title{font-size:13px;font-weight:600;margin-bottom:10px;color:var(--text)}.gcal-embed{width:100%;height:320px;border:none;border-radius:8px;background:#fff}.panel-block textarea{width:100%;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:8px 10px;font-size:13px;font-family:inherit;resize:vertical;margin-bottom:8px}.ai-result{font-size:12px;color:var(--text-dim);margin-top:8px;line-height:1.5}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}.modal-box{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:20px;width:100%;max-width:420px}.modal-title{font-size:16px;font-weight:600;margin-bottom:14px}.modal-box form label{display:block;font-size:12px;color:var(--text-dim);margin-bottom:10px}.modal-box form input,.modal-box form textarea,.modal-box form select{display:block;width:100%;margin-top:4px;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:8px 10px;font-size:13px;font-family:inherit}.modal-box .form-row{display:flex;gap:10px}.modal-box .form-row label{flex:1}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}
