@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500&family=DM+Serif+Display&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--ink: #0f0f0f;--ink-soft: #555;--ink-mute: #aaa;--paper: #fafaf8;--paper-2: #eef2f8;--paper-3: #eceae5;--line: rgba(0,0,0,.08);--line-strong: rgba(0,0,0,.15);--accent: #0f0f0f;--radius: 6px;--shadow: 0 2px 16px rgba(0,0,0,.07), 0 0 0 .5px rgba(0,0,0,.06);--shadow-lg: 0 8px 48px rgba(0,0,0,.12), 0 0 0 .5px rgba(0,0,0,.08)}html,body,#root{height:100%}body{font-family:DM Sans,sans-serif;font-size:14px;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.app-header{display:flex;align-items:center;justify-content:space-between;padding:0 2rem;height:56px;border-bottom:1px solid var(--line);background:var(--paper);flex-shrink:0}.cal-cell.full{background:#fff8f0}.cal-cell.full .day-num{color:#e67e22;font-weight:600}.header-left{display:flex;align-items:center;gap:10px}.logo{font-size:16px;line-height:1}.app-title{font-family:"DM Serif Display",serif;font-size:18px;letter-spacing:-.02em;color:var(--ink)}.main{display:flex;flex:1;overflow:hidden}.sidebar{width:200px;flex-shrink:0;border-right:1px solid var(--line);padding:1.5rem 1.25rem;display:flex;flex-direction:column;gap:2rem;overflow-y:auto}.sidebar-label{font-size:10px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:.75rem}.room-toggle{display:flex;align-items:center;gap:8px;padding:5px 0;cursor:pointer;-webkit-user-select:none;user-select:none}.room-toggle input{display:none}.room-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;transition:opacity .15s}.room-toggle input:not(:checked)~.room-dot{opacity:.2}.room-toggle input:not(:checked)~.room-name{color:var(--ink-mute)}.room-name{font-size:13px;color:var(--ink);transition:color .15s}.sidebar-stat{font-size:28px;font-family:"DM Serif Display",serif;letter-spacing:-.03em;color:var(--ink);line-height:1}.upcoming-item{display:flex;align-items:center;gap:8px;padding:6px 0;cursor:pointer;border-radius:var(--radius);transition:opacity .1s}.upcoming-item:hover{opacity:.7}.upcoming-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.upcoming-info{display:flex;flex-direction:column;gap:1px}.upcoming-name{font-size:12px;color:var(--ink);font-weight:500}.upcoming-time{font-size:11px;color:var(--ink-mute)}.upcoming-empty{font-size:12px;color:var(--ink-mute)}.event-people{font-size:10px;opacity:.6;flex-shrink:0}.calendar-area{flex:1;display:flex;flex-direction:column;overflow:hidden;padding:1.5rem 2rem;gap:1rem}.cal-nav{display:flex;align-items:center;gap:1rem}.cal-title{font-family:"DM Serif Display",serif;font-size:22px;letter-spacing:-.03em;font-weight:400;min-width:200px}.nav-btn{background:none;border:1px solid var(--line-strong);border-radius:var(--radius);width:32px;height:32px;cursor:pointer;font-size:14px;color:var(--ink-soft);display:flex;align-items:center;justify-content:center;transition:all .1s}.nav-btn:hover{background:var(--paper-3);color:var(--ink)}.cal-grid-wrap{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative;border:1px solid var(--line);border-radius:10px;background:#fff}.cal-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--ink-mute);background:#ffffffb3;z-index:10;border-radius:10px}.cal-head{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--line)}.cal-head-cell{padding:8px 0;text-align:center;font-size:11px;font-weight:500;letter-spacing:.06em;color:var(--ink-mute);text-transform:uppercase}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);flex:1;overflow-y:auto;align-content:start}.cal-cell{min-height:120px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:6px;cursor:pointer;transition:background .1s;overflow:hidden}.cal-cell:nth-child(7n){border-right:none}.cal-cell:hover{background:var(--paper-2)}.cal-cell.empty{background:var(--paper);cursor:default}.cal-cell.weekend{background:#f4f3ef}.dark .cal-cell.weekend{background:#1c1c1c}.cal-cell.empty:hover{background:var(--paper)}.cal-cell.today{background:#fffdf5}.day-num{font-size:12px;font-weight:400;color:var(--ink-soft);margin-bottom:4px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;line-height:1}.today-num{background:var(--ink);color:#fff;font-weight:500}.event{border-radius:3px;padding:3px 6px;margin-bottom:2px;font-size:11px;cursor:pointer;display:flex;align-items:baseline;gap:4px;overflow:hidden;transition:opacity .1s}.event:hover{opacity:.75}.event[draggable]:hover{cursor:grab}.event[draggable]:active{cursor:grabbing;opacity:.5}.event-time{font-weight:500;font-size:10px;white-space:nowrap;flex-shrink:0;opacity:.7}.event-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}.btn-add{display:flex;align-items:center;gap:6px;background:var(--ink);color:#fff;border:none;border-radius:var(--radius);padding:8px 16px;font-family:DM Sans,sans-serif;font-size:13px;font-weight:500;cursor:pointer;letter-spacing:.01em;transition:opacity .15s}.btn-add:hover{opacity:.85}.btn-add span{font-size:16px;line-height:1;margin-top:-1px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f0f0f59;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:#fff;border-radius:12px;width:380px;max-width:calc(100vw - 2rem);box-shadow:var(--shadow-lg);animation:slideUp .2s cubic-bezier(.34,1.4,.64,1)}@keyframes slideUp{0%{transform:translateY(12px) scale(.98);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem 0}.modal-header h3{font-family:"DM Serif Display",serif;font-size:18px;font-weight:400;letter-spacing:-.02em}.modal-close{background:none;border:none;font-size:14px;color:var(--ink-mute);cursor:pointer;padding:4px;line-height:1}.modal-close:hover{color:var(--ink)}.modal-body{padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:5px}.field-row{flex-direction:row;gap:12px}.field-row>div{flex:1;display:flex;flex-direction:column;gap:5px}.field label{font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-mute)}.field input,.field select{width:100%;height:38px;border:1px solid var(--line-strong);border-radius:var(--radius);padding:0 10px;font-family:DM Sans,sans-serif;font-size:14px;color:var(--ink);background:#fff;outline:none;transition:border-color .1s;-moz-appearance:none;appearance:none;-webkit-appearance:none}.field input:focus,.field select:focus{border-color:var(--ink)}.form-error{font-size:12px;color:#c0392b;background:#fdf0ef;border-radius:var(--radius);padding:8px 10px}.modal-footer{display:flex;align-items:center;gap:8px;padding:1rem 1.5rem 1.5rem;border-top:1px solid var(--line);margin-top:0}.btn-cancel{background:none;border:1px solid var(--line-strong);border-radius:var(--radius);padding:8px 16px;font-family:DM Sans,sans-serif;font-size:13px;color:var(--ink-soft);cursor:pointer;transition:all .1s}.btn-cancel:hover{background:var(--paper-2);color:var(--ink)}.btn-save{background:var(--ink);color:#fff;border:none;border-radius:var(--radius);padding:8px 20px;font-family:DM Sans,sans-serif;font-size:13px;font-weight:500;cursor:pointer;transition:opacity .15s}.btn-save:hover:not(:disabled){opacity:.8}.btn-save:disabled{opacity:.4;cursor:not-allowed}.btn-delete{background:none;border:none;color:#c0392b;font-family:DM Sans,sans-serif;font-size:13px;cursor:pointer;padding:8px 0;opacity:.7}.btn-delete:hover{opacity:1}.dark{--ink: #f0f0f0;--ink-soft: #aaa;--ink-mute: #666;--paper: #141414;--paper-2: #1e1e1e;--paper-3: #2a2a2a;--line: rgba(255,255,255,.08);--line-strong: rgba(255,255,255,.15)}.dark .event-name,.dark .event-time{color:var(--ink)}.dark .btn-add{background:#f0f0f0;color:#1a1a1a}.dark .sidebar,.dark .app-header{background:var(--paper);border-color:var(--line)}.dark .cal-grid-wrap{background:#1a1a1a}.dark .modal{background:#1e1e1e}.dark .field input,.dark .field select{background:#2a2a2a;color:#f0f0f0}.dark .cal-cell.today{background:#2a2400;border-left:2px solid #f0c040}.dark .cal-cell.full{background:#2a1a00}.dark .today-num{background:#f0c040;color:#1a1a1a}.sidebar-greeting{font-size:13px;color:var(--ink-soft);font-style:italic}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:4px}
