: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;position:relative}.header-logo{font-weight:700;font-size:18px;color:var(--accent);display:flex;align-items:center;gap:6px;white-space:nowrap}.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;overflow-y:auto;display:flex;flex-direction:column;box-shadow:var(--shadow)}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.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}.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)}.user-menu-wrap{position:relative}.user-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:160px;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-hover);z-index:60;display:flex;flex-direction:column;overflow:hidden}.user-menu button{background:transparent;border:none;padding:11px 16px;text-align:left;cursor:pointer;font-size:14px;color:var(--text-main);transition:background .15s}.user-menu button:hover{background:var(--accent-light)}.user-menu .user-menu-logout{color:#8a4a4a;border-top:1px solid var(--border)}.search-toggle-btn{display:none;background:var(--bg-cell);border:1px solid var(--border);border-radius:var(--radius);width:38px;height:38px;font-size:16px;cursor:pointer;align-items:center;justify-content:center;flex-shrink:0;color:var(--text-main)}.search-toggle-btn.active{background:var(--accent-light);border-color:var(--accent)}.search-close-btn{display:none;background:var(--bg-cell);border:1px solid var(--border);border-radius:var(--radius);width:38px;height:38px;font-size:14px;cursor:pointer;align-items:center;justify-content:center;flex-shrink:0;color:var(--text-main)}.day-dots{display:none;align-items:center;justify-content:center;gap:3px;flex-wrap:wrap}.day-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.day-dot.cat-default{background:var(--cat-default)}.day-dot.cat-work{background:var(--cat-work)}.day-dot.cat-personal{background:var(--cat-personal)}.day-dot.cat-important{background:var(--cat-important)}.day-dots-more{font-size:9px;line-height:1;color:var(--text-muted)}.day-popup-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.day-popup-header h2{margin:0;font-size:18px}.day-popup-close{background:var(--bg-cell);border:1px solid var(--border);border-radius:8px;width:32px;height:32px;cursor:pointer;font-size:14px;color:var(--text-main);flex-shrink:0}.day-popup-empty{color:var(--text-muted);text-align:center;padding:20px 0;font-size:14px}.day-popup .event-item{background:var(--bg-cell);border-radius:8px;padding:12px;margin-bottom:8px;cursor:pointer;transition:background .2s}.day-popup .event-item:hover{background:var(--bg-panel-hover)}.color-row-label{font-size:12px;color:var(--text-muted);margin:8px 0 6px}.color-swatches{display:flex;flex-wrap:wrap;gap:8px}.color-swatch{width:28px;height:28px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;transition:transform .1s,border-color .15s;flex-shrink:0}.color-swatch:hover{transform:scale(1.12)}.color-swatch.active{border-color:var(--text-main);box-shadow:0 0 0 2px var(--bg-panel),0 0 0 4px var(--text-main)}.color-custom-row{display:flex;align-items:center;gap:10px;margin-top:10px}.color-custom-row input[type=color]{width:36px;height:36px;padding:0;border:1px solid var(--border);border-radius:8px;background:var(--bg-main);cursor:pointer}.color-custom-label{font-size:13px;color:var(--text-muted)}.color-clear-btn{background:transparent;border:none;color:var(--text-muted);font-size:13px;cursor:pointer;text-decoration:underline;padding:0}.color-clear-btn:hover{color:var(--text-main)}.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 h3{font-size:16px;font-weight:600;margin-bottom:8px}.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-group input[type=checkbox]{width:auto;flex-shrink:0}.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)}.year-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}@media (max-width: 900px){.main-layout{flex-direction:column;overflow-y:auto}.sidebar-left,.sidebar-right{width:100%;min-width:auto;flex-direction:row;flex-wrap:wrap;align-items:flex-start}.sidebar-left .quick-filters{flex-direction:row;flex:1 1 100%;display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.sidebar-left .quick-filters button{text-align:center;padding:10px 6px}.sidebar-left>div{flex:1 1 100%}.calendar-grid{gap:3px}.year-grid{grid-template-columns:repeat(3,1fr);gap:12px}.day-cell{min-height:60px;padding:4px}.day-event{font-size:10px}}@media (max-width: 600px){.header{padding:10px 12px;gap:8px;row-gap:8px;flex-wrap:wrap}.search-toggle-btn{display:flex}.header-search{display:none}.header-search.open{display:flex;align-items:center;gap:8px;position:absolute;top:0;right:0;bottom:0;left:0;max-width:none;padding:10px 12px;background:var(--bg-panel);z-index:20}.header-search.open input{flex:1;width:auto;max-width:none}.header-search.open .search-close-btn{display:flex}.logout-btn,.logo-text{display:none}.header>div:first-child{font-size:16px!important;white-space:nowrap}.sidebar-left>div:not(.quick-filters){display:none}.header-user button{padding:8px 10px;font-size:13px}.calendar-title{font-size:17px}.calendar-header{flex-wrap:wrap;row-gap:8px}.calendar-nav button{padding:6px 10px;font-size:13px}.calendar-area{padding:12px;overflow:hidden}.calendar-grid.month-grid{grid-template-rows:auto repeat(6,1fr);min-height:0}.month-grid .day-cell{min-height:0;padding:2px;gap:3px;align-items:center;justify-content:flex-start}.month-grid .day-events{display:none}.month-grid .day-dots{display:flex;margin-top:auto;padding-bottom:3px}.main-layout{padding:8px;gap:8px}.day-cell{min-height:50px}.year-grid{grid-template-columns:repeat(2,1fr);gap:10px}.day-number{font-size:11px;width:20px;height:20px}.mini-calendar .mini-day{padding:5px 1px;font-size:11px}.sidebar-right{padding-bottom:76px}.add-btn{bottom:16px;right:16px;width:52px;height:52px;font-size:24px}.connect-buttons{grid-template-columns:1fr}.modal-content{padding:16px}}.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)}.user-name-btn{background:transparent;border:none;color:inherit;font:inherit;cursor:pointer;padding:6px 10px;border-radius:8px}.user-name-btn:hover{background:var(--accent-light)}.settings-modal{max-width:520px;width:95%;max-height:85vh;overflow-y:auto}.settings-tabs{display:flex;gap:8px;margin-bottom:16px}.settings-tabs button{flex:1;padding:8px 12px;border:1px solid var(--border, #d9c9b2);background:transparent;border-radius:8px;cursor:pointer;font:inherit}.settings-tabs button.active{background:var(--accent);color:var(--text-light, #fff);border-color:var(--accent)}.settings-section form{margin-bottom:4px}.settings-divider{border:none;border-top:1px solid var(--border, #e0d5c1);margin:18px 0}.settings-select{width:100%;padding:8px 10px;border:1px solid var(--border, #d9c9b2);border-radius:8px;font:inherit;background:#fff}.settings-hint{display:block;color:#8a7a66;font-size:12px;margin-top:4px;line-height:1.4}.settings-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.sync-status-line{margin-top:12px;font-size:13px;color:#8a7a66}.settings-msg{margin-top:12px;padding:10px 12px;border-radius:8px;font-size:13px;line-height:1.5;word-break:break-word}.settings-msg.ok{background:#e8f0e2;color:#4a6b3a;border:1px solid #b8d9a8}.settings-msg.err{background:#f5e3e3;color:#8a4a4a;border:1px solid #d9a8a8}.connect-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.btn-connect{padding:12px;font-size:15px}.device-panel{background:var(--accent-light, #e8d5b7);border-radius:10px;padding:12px 14px;margin-bottom:14px;font-size:14px;line-height:1.6}.device-panel p{margin:4px 0}.device-code{font-family:monospace;font-size:20px;font-weight:700;letter-spacing:2px;background:#fff;border-radius:6px;padding:2px 10px;display:inline-block}.connected-panel{background:#eef3e9;border:1px solid #b8d9a8;border-radius:10px;padding:12px 14px;margin-bottom:14px}.connected-info{font-size:14px;margin-bottom:6px}.advanced-sync{margin-top:14px;font-size:13px}.advanced-sync summary{cursor:pointer;color:#8a7a66;padding:6px 0}.advanced-sync[open] summary{margin-bottom:10px}
