:root{--bg-main: #FDF6E9;--bg-panel: #F5ECD8;--bg-panel-hover: #EDE3CC;--bg-cell: #F9F1DF;--bg-cell-prev: #F0E8D0;--bg-cell-today: #FFF8E1;--accent: #D4A373;--accent-light: #E8D5B7;--text-main: #5C4B3A;--text-muted: #9E8E7D;--text-light: #FFFFFF;--border: #E8DCC8;--radius: 12px;--shadow: 0 2px 8px rgba(92, 75, 58, .08);--shadow-hover: 0 4px 16px rgba(92, 75, 58, .12);--cat-default: #D4C4B0;--cat-work: #A8C4D9;--cat-personal: #B8D9A8;--cat-important: #D9A8A8}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background:var(--bg-main);color:var(--text-main);min-height:100vh;overflow-x:hidden}.app-container{display:flex;flex-direction:column;height:100vh}.header{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;background:var(--bg-panel);border-bottom:1px solid var(--border);gap:16px;flex-shrink:0}.header-search{flex:1;max-width:400px}.header-search input{width:100%;padding:10px 16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-main);color:var(--text-main);font-size:14px;outline:none;transition:border-color .2s,box-shadow .2s}.header-search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #d4a37333}.header-user{display:flex;align-items:center;gap:8px;font-weight:500;font-size:14px}.header-user button{background:var(--accent);color:var(--text-light);border:none;padding:8px 16px;border-radius:var(--radius);cursor:pointer;font-size:13px;transition:background .2s}.header-user button:hover{background:#c29260}.main-layout{display:flex;flex:1;overflow:hidden;gap:12px;padding:12px}.sidebar-left,.sidebar-right{width:260px;min-width:260px;background:var(--bg-panel);border-radius:var(--radius);padding:16px;overflow-y:auto;display:flex;flex-direction:column;gap:16px;box-shadow:var(--shadow)}.calendar-area{flex:1;background:var(--bg-panel);border-radius:var(--radius);padding:20px;display:flex;flex-direction:column;box-shadow:var(--shadow);min-height:0;overflow:hidden}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-shrink:0}.calendar-title{font-size:22px;font-weight:600;color:var(--text-main)}.calendar-nav{display:flex;gap:8px}.calendar-nav button{background:var(--bg-cell);border:1px solid var(--border);padding:8px 14px;border-radius:var(--radius);cursor:pointer;color:var(--text-main);font-size:14px;transition:background .2s}.calendar-nav button:hover{background:var(--accent-light)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;flex:1;min-height:0;overflow-y:auto}.day-header{text-align:center;font-size:12px;font-weight:600;color:var(--text-muted);padding:8px 0;text-transform:uppercase}.day-cell{background:var(--bg-cell);border-radius:8px;padding:8px;min-height:90px;cursor:pointer;display:flex;flex-direction:column;gap:4px;transition:background .2s,transform .1s;border:2px solid transparent}.day-cell:hover{background:var(--bg-panel-hover);transform:translateY(-1px)}.day-cell.prev-month{background:var(--bg-cell-prev);color:var(--text-muted)}.day-cell.today{background:var(--bg-cell-today);border-color:var(--accent)}.day-cell.selected{border-color:var(--text-main)}.day-number{font-size:13px;font-weight:600;width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:50%}.day-cell.today .day-number{background:var(--accent);color:var(--text-light)}.day-events{display:flex;flex-direction:column;gap:3px;overflow:hidden}.day-event{font-size:11px;padding:3px 6px;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-main)}.day-event.cat-default{background:var(--cat-default)}.day-event.cat-work{background:var(--cat-work)}.day-event.cat-personal{background:var(--cat-personal)}.day-event.cat-important{background:var(--cat-important)}.sidebar-left-toggle{display:none}.sidebar-left-content{display:flex;flex-direction:column;gap:16px}.quick-filters{display:flex;flex-direction:column;gap:8px}.quick-filters button{background:var(--bg-cell);border:1px solid var(--border);padding:10px;border-radius:var(--radius);cursor:pointer;color:var(--text-main);font-size:14px;text-align:left;transition:background .2s}.quick-filters button:hover,.quick-filters button.active{background:var(--accent-light);border-color:var(--accent)}.mini-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}.mini-calendar .mini-day{font-size:12px;padding:6px 2px;border-radius:6px;cursor:pointer}.mini-calendar .mini-day:hover{background:var(--accent-light)}.mini-calendar .mini-day.today{background:var(--accent);color:var(--text-light)}.sidebar-right-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.sidebar-right h3{font-size:16px;font-weight:600}.sidebar-right-actions{display:flex;align-items:center;gap:6px}.sidebar-right-add{display:none;width:32px;height:32px;border-radius:50%;border:none;background:var(--accent);color:var(--text-light);font-size:22px;line-height:1;cursor:pointer;align-items:center;justify-content:center;transition:background .2s}.sidebar-right-add:hover{background:#c29260}.sidebar-right-close{display:none;background:transparent;border:none;font-size:18px;color:var(--text-main);cursor:pointer;padding:4px;width:32px;height:32px}.sidebar-right .event-item{background:var(--bg-cell);border-radius:8px;padding:12px;margin-bottom:8px;cursor:pointer;transition:background .2s}.sidebar-right .event-item:hover{background:var(--bg-panel-hover)}.event-item-time{font-size:12px;color:var(--text-muted);margin-bottom:4px}.event-item-title{font-weight:600;font-size:14px;margin-bottom:4px}.event-item-desc{font-size:13px;color:var(--text-muted);line-height:1.4}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#5c4b3a66;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.modal-content{background:var(--bg-panel);border-radius:var(--radius);padding:24px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-hover)}.modal-content h2{margin-bottom:16px;font-size:20px}.form-group{margin-bottom:14px}.form-group label{display:block;font-size:13px;font-weight:500;margin-bottom:6px;color:var(--text-muted)}.form-group input,.form-group textarea,.form-group select{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-main);color:var(--text-main);font-size:14px;outline:none;font-family:inherit}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:var(--accent)}.form-group textarea{resize:vertical;min-height:80px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.btn{padding:10px 20px;border-radius:8px;border:none;cursor:pointer;font-size:14px;transition:opacity .2s}.btn:hover{opacity:.9}.btn-primary{background:var(--accent);color:var(--text-light)}.btn-secondary{background:var(--bg-cell);color:var(--text-main);border:1px solid var(--border)}.btn-danger{background:var(--cat-important);color:var(--text-light)}.login-container{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:16px}.login-box{background:var(--bg-panel);border-radius:var(--radius);padding:32px;width:100%;max-width:380px;box-shadow:var(--shadow-hover)}.login-box h1{font-size:24px;margin-bottom:8px;text-align:center}.login-box p{text-align:center;color:var(--text-muted);margin-bottom:24px;font-size:14px}.login-tabs{display:flex;gap:8px;margin-bottom:20px}.login-tabs button{flex:1;padding:10px;background:var(--bg-cell);border:1px solid var(--border);border-radius:8px;cursor:pointer;color:var(--text-main)}.login-tabs button.active{background:var(--accent);color:var(--text-light);border-color:var(--accent)}@media (max-width: 900px){.app-container{height:100dvh}.main-layout{flex-direction:column;overflow:hidden;padding:8px;gap:8px}.header{padding:8px 12px;gap:8px}.header-search input{padding:8px 12px;font-size:14px}.header-user{font-size:13px}.header-user button{padding:6px 12px;font-size:12px}.sidebar-left,.sidebar-right{width:100%;min-width:auto}.sidebar-left{padding:8px 12px;gap:0;flex-shrink:0}.sidebar-left.compact .sidebar-left-content{display:none}.sidebar-left.open .sidebar-left-content{display:flex;padding-top:12px}.sidebar-left-toggle{display:flex;align-items:center;gap:12px;width:100%;background:transparent;border:none;padding:0;cursor:pointer;color:var(--text-main);text-align:left}.toggle-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--bg-cell);border:1px solid var(--border);border-radius:var(--radius);font-size:16px;flex-shrink:0}.toggle-info{display:flex;flex-direction:column;gap:2px;min-width:0}.toggle-view{font-size:12px;color:var(--text-muted);font-weight:500}.toggle-date{font-size:15px;font-weight:600}.toggle-month{font-size:12px;color:var(--text-muted)}.calendar-area{padding:12px;flex:1;min-height:0}.calendar-header{margin-bottom:12px}.calendar-title{font-size:18px}.calendar-nav button{padding:6px 10px;font-size:13px}.calendar-grid{gap:3px}.day-cell{min-height:72px;padding:4px}.day-number{font-size:11px;width:20px;height:20px}.day-event{font-size:9px;padding:2px 4px;pointer-events:none}.sidebar-right{position:fixed;left:0;right:0;bottom:0;top:auto;width:100%;max-height:60vh;border-radius:var(--radius) var(--radius) 0 0;transform:translateY(100%);transition:transform .25s ease-out;z-index:200;box-shadow:0 -4px 20px #5c4b3a26}.sidebar-right.open{transform:translateY(0)}.sidebar-right-add{display:flex}.sidebar-right-close{display:block}.sidebar-right-content{overflow-y:auto;max-height:calc(60vh - 50px)}.sidebar-right-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#5c4b3a4d;z-index:199}}@media (max-width: 600px){.header{padding:8px 10px;flex-wrap:wrap}.header-search{order:3;max-width:100%;width:100%}.calendar-title{font-size:16px}.calendar-nav button{padding:5px 8px;font-size:12px}.day-cell{min-height:58px;padding:3px}.day-number{font-size:10px;width:18px;height:18px}.day-event{font-size:8px;padding:1px 3px}.sidebar-right{max-height:70vh}.sidebar-right-content{max-height:calc(70vh - 50px)}}.add-btn{position:fixed;bottom:24px;right:24px;width:56px;height:56px;border-radius:50%;background:var(--accent);color:var(--text-light);border:none;font-size:28px;cursor:pointer;box-shadow:var(--shadow-hover);display:flex;align-items:center;justify-content:center;z-index:100}.add-btn:hover{transform:scale(1.05)}
