@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Oswald:wght@400;500;700&display=swap";:root{--primary:#f2f2f2;--secondary:#8c8c8c;--tertiary:#e10600;--neutral:#0b0b0b;--surface:#151515;--on-primary:#0b0b0b;--border:#2a2a2a;--font-display:"Oswald", sans-serif;--font-body:"Inter", sans-serif;--font-label:"Oswald", sans-serif;--rounded-sm:0px;--rounded-md:2px;--rounded-lg:4px;font-family:var(--font-body);color:var(--primary);font-size:.95rem;line-height:1.5}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--neutral)}h1,h2,h3{font-family:var(--font-display);color:var(--primary);font-weight:700}h1{font-size:2.5rem}.auth-page{background:var(--neutral);justify-content:center;align-items:center;min-height:100vh;display:flex}.auth-form{background:var(--surface);border-radius:var(--rounded-lg);border:1px solid var(--border);width:400px;max-width:90vw;padding:40px}.auth-form h1{text-align:center;font-family:var(--font-display);letter-spacing:.02em;margin-bottom:24px}.auth-form input{border:1px solid var(--border);border-radius:var(--rounded-md);width:100%;font-size:.95rem;font-family:var(--font-body);background:var(--neutral);color:var(--primary);outline:none;margin-bottom:16px;padding:12px 16px;transition:border-color .2s}.auth-form input:focus{border-color:var(--tertiary)}.auth-form button[type=submit]{background:var(--tertiary);width:100%;color:var(--primary);border-radius:var(--rounded-md);font-size:.95rem;font-family:var(--font-display);letter-spacing:.16em;text-transform:uppercase;cursor:pointer;border:none;padding:12px;font-weight:700;transition:opacity .2s}.auth-form button[type=submit]:hover{opacity:.85}.auth-form p{text-align:center;color:var(--secondary);margin-top:16px}.auth-form a{color:var(--tertiary);text-decoration:none}.error-msg{color:var(--tertiary);border-radius:var(--rounded-md);background:#e1060026;border:1px solid #e106004d;margin-bottom:16px;padding:10px 16px;font-size:.85rem}.app-layout{min-height:100vh;display:flex}.sidebar{background:var(--surface);width:240px;color:var(--secondary);border-right:1px solid var(--border);flex-direction:column;height:100vh;padding:24px 0;display:flex;position:fixed;overflow-y:auto}.sidebar-header{border-bottom:1px solid var(--border);padding:0 24px 24px}.sidebar-header h2{font-family:var(--font-display);letter-spacing:.16em;text-transform:uppercase;color:var(--primary);margin-bottom:4px;font-size:1.4rem}.user-name{font-size:.78rem;font-family:var(--font-label);letter-spacing:.16em;text-transform:uppercase}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:16px 0;display:flex}.nav-link{color:var(--secondary);font-size:.85rem;font-family:var(--font-label);letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:12px;padding:10px 24px;text-decoration:none;transition:all .2s;display:flex}.nav-link:hover{color:var(--primary);background:#f2f2f20d}.nav-link.active{color:var(--primary);border-right:3px solid var(--tertiary);background:#e1060014}.logout-btn{color:var(--secondary);border:1px solid var(--border);border-radius:var(--rounded-md);font-size:.78rem;font-family:var(--font-label);letter-spacing:.16em;text-transform:uppercase;cursor:pointer;background:0 0;align-items:center;gap:12px;margin:0 12px;padding:10px 24px;transition:all .2s;display:flex}.logout-btn:hover{border-color:var(--tertiary);color:var(--tertiary)}.main-content{flex:1;min-height:100vh;margin-left:240px;padding:32px}.dashboard h1{letter-spacing:.02em;margin-bottom:32px}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}.stat-card{background:var(--surface);border-radius:var(--rounded-lg);border:1px solid var(--border);align-items:center;gap:20px;padding:24px;display:flex}.stat-icon{color:var(--tertiary);font-size:28px}.stat-card h3{color:var(--primary);font-size:1.8rem;font-family:var(--font-display)}.stat-card p{color:var(--secondary);font-size:.78rem;font-family:var(--font-label);letter-spacing:.16em;text-transform:uppercase}.page-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.page-header h1{margin:0}.btn-primary{background:var(--tertiary);color:var(--primary);border-radius:var(--rounded-md);font-size:.78rem;font-family:var(--font-label);letter-spacing:.16em;text-transform:uppercase;cursor:pointer;border:none;align-items:center;gap:8px;padding:12px 20px;font-weight:700;transition:opacity .2s;display:inline-flex}.btn-primary:hover{opacity:.85}.btn-secondary{color:var(--primary);border:1px solid var(--border);border-radius:var(--rounded-md);font-size:.78rem;font-family:var(--font-label);letter-spacing:.16em;text-transform:uppercase;cursor:pointer;background:0 0;padding:12px 20px;transition:border-color .2s}.btn-secondary:hover{border-color:var(--secondary)}.item-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--rounded-lg);flex-direction:column;gap:12px;margin-bottom:24px;padding:24px;display:flex}.item-form input,.item-form textarea,.item-form select{border:1px solid var(--border);border-radius:var(--rounded-md);font-size:.95rem;font-family:var(--font-body);background:var(--neutral);color:var(--primary);outline:none;padding:10px 14px;transition:border-color .2s}.item-form input:focus,.item-form textarea:focus{border-color:var(--tertiary)}.item-form textarea{resize:vertical;min-height:60px}.form-row{flex-wrap:wrap;gap:12px;display:flex}.form-row label{font-size:.78rem;font-family:var(--font-label);letter-spacing:.16em;text-transform:uppercase;color:var(--secondary);flex-direction:column;gap:4px;display:flex}.form-actions{gap:12px;display:flex}.item-list{flex-direction:column;gap:8px;display:flex}.task-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--rounded-lg);align-items:flex-start;gap:14px;padding:16px 20px;transition:border-color .2s;display:flex}.task-item:hover{border-color:var(--secondary)}.task-item.completed{opacity:.45}.task-item.completed h3{text-decoration:line-through}.task-item input[type=checkbox]{width:18px;height:18px;accent-color:var(--tertiary);cursor:pointer;margin-top:2px}.task-content{flex:1}.task-content h3{font-size:1rem;font-family:var(--font-body);margin-bottom:4px;font-weight:600}.task-content p{color:var(--secondary);font-size:.85rem}.task-meta{gap:10px;margin-top:8px;font-size:.78rem;display:flex}.priority-badge{border-radius:var(--rounded-md);font-size:.7rem;font-family:var(--font-label);letter-spacing:.12em;text-transform:uppercase;padding:2px 10px;font-weight:500}.priority-low{color:var(--secondary);background:#8c8c8c26}.priority-medium{color:var(--primary);background:#f2f2f21a}.priority-high{color:var(--tertiary);background:#e1060026}.due-date{color:var(--secondary)}.item-actions{gap:4px;display:flex}.item-actions button{color:var(--secondary);cursor:pointer;border-radius:var(--rounded-md);background:0 0;border:none;padding:6px;transition:color .2s}.item-actions button:hover{color:var(--primary)}.notes-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.note-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--rounded-lg);flex-direction:column;padding:20px;transition:border-color .2s;display:flex}.note-card:hover{border-color:var(--secondary)}.note-card.pinned{border-color:var(--tertiary)}.note-header{justify-content:space-between;align-items:flex-start;margin-bottom:8px;display:flex}.note-header h3{font-size:1rem;font-family:var(--font-body);font-weight:600}.pin-btn{color:var(--secondary);cursor:pointer;background:0 0;border:none;padding:4px}.pin-btn.active{color:var(--tertiary)}.note-content{color:var(--secondary);white-space:pre-wrap;-webkit-line-clamp:5;-webkit-box-orient:vertical;flex:1;margin-bottom:12px;font-size:.85rem;display:-webkit-box;overflow:hidden}.note-footer{font-size:.7rem;font-family:var(--font-label);letter-spacing:.12em;color:var(--secondary);border-top:1px solid var(--border);justify-content:space-between;align-items:center;padding-top:12px;display:flex}.schedule-group{margin-bottom:24px}.schedule-date{font-size:.78rem;font-family:var(--font-label);letter-spacing:.16em;text-transform:uppercase;color:var(--secondary);border-bottom:1px solid var(--border);margin-bottom:12px;padding-bottom:8px}.event-item{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--tertiary);border-radius:var(--rounded-lg);align-items:center;gap:16px;margin-bottom:8px;padding:16px 20px;display:flex}.event-time{font-size:.78rem;font-family:var(--font-label);letter-spacing:.1em;color:var(--tertiary);white-space:nowrap;min-width:120px;font-weight:700}.event-content{flex:1}.event-content h3{font-size:.95rem;font-family:var(--font-body);margin-bottom:2px;font-weight:600}.event-content p{color:var(--secondary);font-size:.85rem}.datetime-weather-widget{background:var(--surface);border:1px solid var(--border);border-radius:var(--rounded-lg);color:var(--primary);justify-content:space-between;align-items:center;margin-bottom:28px;padding:28px 32px;display:flex}.dt-time-section{flex-direction:column;gap:6px;display:flex}.dt-clock{font-family:var(--font-display);letter-spacing:.02em;align-items:baseline;gap:2px;font-weight:700;line-height:1;display:flex}.dt-hours,.dt-minutes{font-size:5rem}.dt-separator{color:var(--tertiary);font-size:4.5rem;animation:1s step-end infinite blink}.dt-seconds{color:var(--secondary);margin-left:4px;font-size:1.5rem}@keyframes blink{50%{opacity:0}}.dt-date{font-size:.78rem;font-family:var(--font-label);letter-spacing:.16em;text-transform:uppercase;color:var(--secondary);gap:12px;display:flex}.dt-weekday{color:var(--primary)}.dt-lunar{font-size:.78rem;font-family:var(--font-label);letter-spacing:.12em;color:var(--secondary);margin-top:2px}.dt-weather-section{text-align:right;align-items:center;gap:16px;display:flex}.dt-weather-icon{color:var(--secondary);font-size:44px}.dt-weather-info{flex-direction:column;display:flex}.dt-temp{font-size:2.5rem;font-family:var(--font-display);letter-spacing:.02em;font-weight:700;line-height:1.1}.dt-location{font-size:.78rem;font-family:var(--font-label);letter-spacing:.16em;text-transform:uppercase;color:var(--secondary)}.dt-weather-details{font-size:.78rem;font-family:var(--font-label);letter-spacing:.1em;color:var(--secondary);flex-direction:column;gap:2px;display:flex}.dt-weather-loading{color:var(--secondary);font-size:.85rem}@media (width<=768px){.datetime-weather-widget{flex-direction:column;align-items:flex-start;gap:20px;padding:20px 24px}.dt-hours,.dt-minutes{font-size:3rem}.dt-separator{font-size:2.8rem}.dt-weather-section{text-align:left}}.apikey-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--rounded-lg);justify-content:space-between;align-items:flex-start;gap:16px;padding:20px;transition:border-color .2s;display:flex}.apikey-item:hover{border-color:var(--secondary)}.apikey-info{flex:1;min-width:0}.apikey-header{align-items:center;gap:12px;margin-bottom:4px;display:flex}.apikey-header h3{font-size:1rem;font-family:var(--font-body);font-weight:600}.apikey-code{color:var(--primary);background:var(--neutral);border-radius:var(--rounded-md);border:1px solid var(--border);letter-spacing:.05em;padding:2px 8px;font-family:Consolas,Monaco,monospace;font-size:.75rem}.apikey-service{font-size:.68rem;font-family:var(--font-label);letter-spacing:.16em;text-transform:uppercase;color:var(--tertiary);border-radius:var(--rounded-md);border:1px solid #e106004d;padding:2px 8px}.apikey-desc{color:var(--secondary);margin-bottom:8px;font-size:.85rem}.apikey-value{margin-top:8px}.apikey-value code{color:var(--secondary);background:var(--neutral);border-radius:var(--rounded-md);border:1px solid var(--border);text-overflow:ellipsis;word-break:break-all;max-width:100%;padding:6px 12px;font-family:Consolas,Monaco,monospace;font-size:.85rem;display:inline-block;overflow:hidden}.empty-msg{text-align:center;color:var(--secondary);padding:40px 0;font-size:.85rem}.loading{min-height:100vh;font-size:1rem;font-family:var(--font-label);letter-spacing:.16em;text-transform:uppercase;color:var(--secondary);justify-content:center;align-items:center;display:flex}@media (width<=768px){.sidebar{width:60px;padding:16px 0}.sidebar-header{padding:0 8px 16px}.sidebar-header h2{font-size:.7rem}.user-name{display:none}.nav-link{justify-content:center;padding:12px;font-size:0}.nav-link svg{font-size:20px}.logout-btn{justify-content:center;margin:0 8px;padding:10px;font-size:0}.main-content{margin-left:60px;padding:20px}}
