:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box;margin:0;padding:0}body{min-width:320px;height:100vh;overflow:hidden}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}}.app{height:100vh;display:flex;flex-direction:column;overflow:hidden}.main-content{flex:1;padding:1.5rem;max-width:1200px;margin:0 auto;width:100%;display:flex;flex-direction:column}.app-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.5rem;border-bottom:1px solid #333}.header-username{font-size:1.25rem;font-weight:600}.header-logo{display:flex;align-items:center;gap:.5rem;position:relative}.calendar-icon-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;padding:.25rem;border-radius:6px;line-height:1;display:flex;align-items:center;justify-content:center;transition:background .15s}.calendar-icon-btn:hover{background:#ffffff1a}.header-menu{position:absolute;top:calc(100% + .5rem);left:0;background:#2a2a2a;border:1px solid #444;border-radius:8px;min-width:140px;box-shadow:0 4px 16px #0006;z-index:200;overflow:hidden}.header-menu-item{display:block;width:100%;text-align:left;padding:.65rem 1rem;font-size:.9rem;background:transparent;border:none;color:inherit;cursor:pointer;transition:background .15s}.header-menu-item:hover{background:#ffffff1a}@media(prefers-color-scheme:light){.header-menu{background:#fff;border-color:#ddd;box-shadow:0 4px 16px #0000001f}.header-menu-item:hover,.calendar-icon-btn:hover{background:#0000000d}}.header-actions{display:flex;align-items:center;gap:.75rem}.avatar{width:32px;height:32px;border-radius:50%}.login-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:1rem;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460)}.login-card{width:100%;max-width:380px;background:#ffffff0d;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:2.5rem 2rem;box-shadow:0 24px 48px #0006;text-align:center}.login-card .login-emoji{font-size:3rem;display:block;margin-bottom:.75rem;filter:drop-shadow(0 4px 8px rgba(0,0,0,.3))}.login-card h1{font-size:1.6rem;font-weight:700;margin-bottom:.4rem;color:#fff}.login-card p{color:#ffffff80;font-size:.9rem;margin-bottom:1.75rem}.login-form{display:flex;flex-direction:column;gap:.875rem;text-align:left}.login-form input{width:100%;padding:.75rem 1rem;font-size:.95rem;border-radius:10px;border:1px solid rgba(255,255,255,.15);background:#ffffff12;color:#fff;transition:border-color .2s,background .2s;outline:none}.login-form input::placeholder{color:#ffffff59}.login-form input:focus{border-color:#4285f4;background:#4285f414}.login-error{font-size:.85rem;color:#ff6b6b;background:#e74c3c1f;border:1px solid rgba(231,76,60,.3);border-radius:8px;padding:.6rem .875rem;text-align:center}.login-btn{width:100%;padding:.8rem 1.5rem;font-size:1rem;border-radius:10px;border:none;background:linear-gradient(135deg,#4285f4,#3367d6);color:#fff;cursor:pointer;font-weight:600;margin-top:.25rem;transition:opacity .2s,transform .15s,box-shadow .2s;box-shadow:0 4px 15px #4285f459}.login-btn:hover:not(:disabled){opacity:.92;transform:translateY(-1px);box-shadow:0 6px 20px #4285f473}.login-btn:active:not(:disabled){transform:translateY(0)}.login-btn:disabled{opacity:.6;cursor:not-allowed}@media(prefers-color-scheme:light){.login-page{background:linear-gradient(135deg,#e8f0fe,#d2e3fc,#b8d0f9)}.login-card{background:#ffffffd9;border-color:#4285f426;box-shadow:0 24px 48px #4285f41f}.login-card h1{color:#1a1a2e}.login-card p{color:#2135478c}.login-form input{border-color:#4285f440;background:#ffffffe6;color:#213547}.login-form input::placeholder{color:#21354766}.login-form input:focus{border-color:#4285f4;background:#fff}}.logout-btn{padding:.4rem .8rem;font-size:.85rem;border-radius:6px;border:1px solid #555;background:transparent;color:inherit;cursor:pointer}.logout-btn:hover{background:#ffffff1a}.loading{display:flex;align-items:center;justify-content:center;min-height:100vh;font-size:1.1rem;color:#888}@media(prefers-color-scheme:light){.app-header{border-bottom-color:#ddd}.logout-btn{border-color:#ccc}.logout-btn:hover{background:#0000000d}}.family-setup{display:flex;flex-direction:column;align-items:center;text-align:center;gap:1rem;padding:3rem 1rem}.family-setup h2{font-size:1.5rem}.family-setup-buttons{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}.family-setup-form{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center}.family-setup-form input{padding:.6rem 1rem;font-size:1rem;border-radius:8px;border:1px solid #555;background:transparent;color:inherit;min-width:250px}.btn-primary{padding:.65rem 1.5rem;font-size:1rem;border-radius:8px;border:none;background:#4285f4;color:#fff;cursor:pointer;font-weight:500}.btn-primary:hover:not(:disabled){background:#3367d6}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{padding:.65rem 1.5rem;font-size:1rem;border-radius:8px;border:1px solid #555;background:transparent;color:inherit;cursor:pointer}.btn-secondary:hover{background:#ffffff1a}.btn-link{background:none;border:none;color:#4285f4;cursor:pointer;font-size:.9rem;padding:0}.error-text{color:#e74c3c;font-size:.9rem}@media(prefers-color-scheme:light){.family-setup-form input,.btn-secondary{border-color:#ccc}.btn-secondary:hover{background:#0000000d}}.calendar{width:100%;display:flex;flex-direction:column;flex:1}.calendar-nav{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.calendar-nav-group{display:flex;align-items:center;gap:.2rem}.calendar-title{font-size:1rem;margin:0;min-width:160px;text-align:center}.nav-btn{background:none;border:1px solid #444;color:inherit;font-size:1.2rem;width:36px;height:36px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center}.nav-btn:hover{background:#ffffff1a}.today-btn{padding:.35rem .8rem;font-size:.85rem;border-radius:6px;border:1px solid #444;background:transparent;color:inherit;cursor:pointer;margin-left:auto}.today-btn:hover{background:#ffffff1a}.calendar-grid{display:grid;grid-template-columns:auto repeat(7,1fr);border:1px solid #333;border-radius:8px;overflow:hidden;flex:1;min-height:0}.calendar-week-number{display:flex;align-items:flex-start;justify-content:center;font-size:.72rem;font-weight:600;color:#888;padding:.4rem .4rem 0;border-bottom:1px solid #333;border-right:1px solid #333;min-width:2rem;cursor:default}.calendar-week-number-header{border-right:1px solid #333}.calendar-header-cell{padding:.5rem;text-align:center;font-weight:600;font-size:.8rem;text-transform:uppercase;color:#888;border-bottom:1px solid #333}.day-name-short{display:none}.calendar-cell{min-height:60px;padding:.4rem;border-bottom:1px solid #333;border-right:1px solid #333;cursor:pointer;transition:background .15s;display:flex;flex-direction:column;overflow:hidden}.calendar-cell:nth-child(8n){border-right:none}.calendar-cell:hover{background:#4285f414}.calendar-cell.empty{cursor:default;background:#00000026}.calendar-cell.empty:hover{background:#00000026}.calendar-cell.today{background:#4d4a469e}.calendar-cell.today .day-number{color:#4285f4;font-weight:700}.calendar-cell.selected{background:#4285f426}.day-number{font-size:.85rem;font-weight:500;display:inline-block;margin-bottom:.25rem}.day-activities{display:flex;flex-direction:column;gap:2px;flex:1;overflow:hidden}.activity-chip{font-size:.72rem;padding:1px 6px;border-radius:4px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.activity-chip:hover{opacity:.85}.activity-chip.dragging{opacity:.4}.calendar-cell.drag-over,.week-row.drag-over{background:#4285f433;outline:2px dashed #4285f4;outline-offset:-2px}.more-activities{font-size:.7rem;color:#888;padding-left:2px}.calendar-loading{text-align:center;padding:3rem;color:#888}.panel-overlay{position:fixed;inset:0;background:#0006;display:flex;justify-content:flex-end;z-index:100}.activity-panel{width:380px;max-width:100%;background:#2a2a2a;height:100%;padding:2rem;overflow-y:auto;box-shadow:-4px 0 20px #0000004d}.panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.panel-header h3{margin:0;font-size:1.1rem}.panel-close{background:none;border:none;color:inherit;font-size:1.2rem;cursor:pointer;padding:.25rem}.panel-date{color:#aaa;font-size:.9rem;margin-bottom:.25rem}.panel-creator{color:#888;font-size:.8rem;margin-bottom:1rem}.panel-form{display:flex;flex-direction:column;gap:.75rem}.panel-input{padding:.6rem .75rem;font-size:.95rem;border-radius:6px;border:1px solid #444;background:transparent;color:inherit;width:100%;box-sizing:border-box}.panel-textarea{resize:vertical;font-family:inherit}.panel-checkbox{display:flex;align-items:center;gap:.5rem;font-size:.9rem;cursor:pointer}.time-inputs{display:flex;align-items:center;gap:.5rem}.time-input{flex:1}.panel-actions{display:flex;gap:.5rem;margin-top:.5rem}.btn-danger{padding:.65rem 1.25rem;font-size:.95rem;border-radius:8px;border:none;background:#e74c3c;color:#fff;cursor:pointer}.btn-danger:hover:not(:disabled){background:#c0392b}.btn-danger:disabled{opacity:.5;cursor:not-allowed}@media(prefers-color-scheme:light){.nav-btn{border-color:#ccc}.nav-btn:hover{background:#0000000d}.today-btn{border-color:#ccc}.today-btn:hover{background:#0000000d}.calendar-grid{border-color:#ddd}.calendar-header-cell{border-bottom-color:#ddd}.calendar-cell{border-bottom-color:#ddd;border-right-color:#ddd}.calendar-cell.empty,.calendar-cell.empty:hover{background:#00000008}.calendar-week-number{border-bottom-color:#ddd;border-right-color:#ddd}.activity-panel{background:#fff;box-shadow:-4px 0 20px #00000026}.panel-input{border-color:#ccc}.panel-date{color:#666}}@media(max-width:600px){.panel-overlay{justify-content:stretch}.activity-panel{width:100%;max-width:100%}.main-content{padding:.5rem}.calendar-week-number{min-width:1.25rem;padding:0 .15rem;font-size:.6rem}.calendar-header-cell{padding:.25rem 0}.day-name-long{display:none}.day-name-short{display:inline}.calendar-cell{padding:.15rem;min-height:60px}.day-number{font-size:.72rem;margin-bottom:.1rem}.activity-chip{font-size:.6rem;padding:1px 2px}}.week-grid{display:flex;flex-direction:column;flex:1;border:1px solid #333;border-radius:8px;overflow:hidden}.week-row{display:flex;flex:1;border-bottom:1px solid #333;cursor:pointer;transition:background .15s}.week-row:last-child{border-bottom:none}.week-row:hover{background:#4285f414}.week-row.today{background:#4285f40d}.week-row.selected{background:#4285f426}.week-header-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:.5rem .75rem;border-right:1px solid #333;width:70px;flex-shrink:0}.week-day-name{font-size:.72rem;font-weight:600;text-transform:uppercase;color:#888;letter-spacing:.05em}.week-day-number{font-size:.9rem;font-weight:500;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%}.week-day-number.today{background:#4285f4;color:#fff}.week-cell{flex:1;padding:.4rem;overflow-y:auto}.activity-time{font-size:.65rem;opacity:.85;margin-right:3px;font-weight:600}.view-toggle{display:flex;border:1px solid #444;border-radius:6px;overflow:hidden;flex-shrink:0}.view-btn{padding:.3rem .75rem;font-size:.85rem;background:transparent;border:none;color:inherit;cursor:pointer;transition:background .15s,color .15s}.view-btn:not(:last-child){border-right:1px solid #444}.view-btn:hover:not(.active){background:#ffffff14}.view-btn.active{background:#4285f4;color:#fff}.week-title{display:flex;flex-direction:column;align-items:center;gap:1px}.week-number{font-size:1.1rem;font-weight:700;line-height:1.2}.week-range{font-size:.78rem;color:#888;font-weight:400;line-height:1.2}@media(prefers-color-scheme:light){.week-grid{border-color:#ddd}.week-row{border-bottom-color:#ddd}.week-header-cell{border-right-color:#ddd}.view-toggle{border-color:#ccc}.view-btn:not(:last-child){border-right-color:#ccc}.view-btn:hover:not(.active){background:#0000000d}.week-range{color:#666}}.mic-btn{width:38px;height:38px;border-radius:50%;border:1px solid #444;background:transparent;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,border-color .2s,box-shadow .2s;position:relative}.mic-btn:hover:not(:disabled){background:#ffffff1a}.mic-btn:disabled{opacity:.6;cursor:not-allowed}.mic-btn.recording{background:#e74c3c26;border-color:#e74c3c;animation:mic-pulse 1.2s infinite}@keyframes mic-pulse{0%,to{box-shadow:0 0 #e74c3c66}50%{box-shadow:0 0 0 8px #e74c3c00}}.mic-spinner{width:18px;height:18px;border:2px solid #888;border-top-color:#4285f4;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-color-scheme:light){.mic-btn{border-color:#ccc}.mic-btn:hover:not(:disabled){background:#0000000d}}.toast-container{position:fixed;top:1rem;right:1rem;z-index:1000;display:flex;flex-direction:column;gap:.5rem;pointer-events:none}.toast{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-radius:8px;font-size:.9rem;color:#fff;cursor:pointer;pointer-events:auto;animation:toast-in .3s ease-out;max-width:360px;box-shadow:0 4px 12px #0000004d}.toast-success{background:#34a853}.toast-error{background:#e74c3c}.toast-icon{font-weight:700;font-size:1rem;flex-shrink:0}.toast-message{flex:1;line-height:1.3}@keyframes toast-in{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}
