*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#f5f5f5;color:#333}.auth-page{display:flex;justify-content:center;align-items:center;min-height:100vh}.auth-form{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 8px #0000001a;width:100%;max-width:400px;display:flex;flex-direction:column;gap:1rem}.auth-form h1{text-align:center}.auth-form input{padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem}.auth-form button{padding:.75rem;background:#2563eb;color:#fff;border:none;border-radius:4px;font-size:1rem;cursor:pointer}.auth-form button:hover{background:#1d4ed8}.auth-form p{text-align:center;font-size:.9rem}.auth-form a{color:#2563eb}.error{color:#dc2626;font-size:.9rem;text-align:center}.success{color:#16a34a;font-size:.9rem;text-align:center}.loading{text-align:center;color:#6b7280;padding:.5rem}.calendar-page{max-width:900px;margin:0 auto;padding:1rem}.app-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.app-header h1{font-size:1.5rem}.user-info{display:flex;align-items:center;gap:.75rem}.user-info button{padding:.4rem .8rem;background:#6b7280;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.85rem}.user-info button:hover{background:#4b5563}.legend{display:flex;gap:1.5rem;font-size:.85rem;color:#6b7280;margin-bottom:1rem;flex-wrap:wrap}.month-nav{display:flex;justify-content:center;align-items:center;gap:1rem;margin-bottom:1rem}.month-nav button{padding:.4rem .8rem;background:#e5e7eb;border:none;border-radius:4px;cursor:pointer;font-size:1.1rem}.month-nav button:hover{background:#d1d5db}.month-nav h2{font-size:1.25rem;min-width:200px;text-align:center}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;background:#e5e7eb;border-radius:8px;overflow:hidden}.day-header{background:#374151;color:#fff;padding:.5rem;text-align:center;font-weight:600;font-size:.85rem}.day-cell{background:#fff;min-height:80px;padding:.4rem;cursor:pointer;position:relative;transition:background .15s}.day-cell:hover{background:#f0f4ff}.day-cell.blank{background:#f9fafb;cursor:default}.day-cell.my-yes{background:#f0fdf4}.day-number{font-size:.85rem;font-weight:600;color:#374151}.dots{display:flex;flex-wrap:wrap;gap:3px;margin-top:4px}.dot{padding:2px 6px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:700;color:#fff;white-space:nowrap}.dot-yes{background:#22c55e}.view-toggle{display:flex;justify-content:center;gap:.5rem;margin-bottom:1rem}.view-toggle button{padding:.4rem 1rem;background:#e5e7eb;border:none;border-radius:4px;cursor:pointer;font-size:.85rem;font-weight:600}.view-toggle button:hover{background:#d1d5db}.view-toggle button.active{background:#2563eb;color:#fff}.week-vertical{display:flex;flex-direction:column;gap:2px;background:#e5e7eb;border-radius:8px;overflow:hidden}.week-row{display:flex;align-items:center;background:#fff;min-height:56px;padding:.5rem 1rem;cursor:pointer;transition:background .15s;gap:1rem}.week-row:hover{background:#f0f4ff}.week-row.my-yes{background:#f0fdf4}.week-row-label{min-width:140px;flex-shrink:0}.week-day-name{font-weight:700;font-size:.95rem;color:#374151;display:block}.week-day-date{font-size:.8rem;color:#6b7280}.week-row-users{display:flex;flex-wrap:wrap;gap:4px;flex:1}.week-nav{display:flex;justify-content:center;align-items:center;gap:1rem;margin-bottom:1rem}.week-nav button{padding:.4rem .8rem;background:#e5e7eb;border:none;border-radius:4px;cursor:pointer;font-size:1.1rem}.week-nav button:hover{background:#d1d5db}.week-nav h2{font-size:1.1rem;min-width:280px;text-align:center}.invite-btn{padding:.4rem .8rem;background:#2563eb;color:#fff;border:none;border-radius:4px;font-size:.85rem;text-decoration:none;cursor:pointer}.invite-btn:hover{background:#1d4ed8}.invite-page{max-width:700px;margin:0 auto;padding:1rem}.back-link{color:#2563eb;text-decoration:none;font-size:.9rem}.invite-form{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 8px #0000001a;display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.invite-form h2{font-size:1.1rem;margin:0}.invite-form input{padding:.6rem;border:1px solid #ddd;border-radius:4px;font-size:.95rem}.invite-form button{padding:.6rem;background:#2563eb;color:#fff;border:none;border-radius:4px;font-size:.95rem;cursor:pointer}.invite-form button:hover{background:#1d4ed8}.invite-link-box{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;padding:1rem;margin-bottom:1.5rem}.invite-link-row{display:flex;gap:.5rem;margin-top:.5rem}.invite-link-input{flex:1;padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:.85rem;background:#fff}.copy-btn{padding:.5rem 1rem;background:#22c55e;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.85rem;white-space:nowrap}.copy-btn:hover{background:#16a34a}.invite-list{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 8px #0000001a}.invite-list h2{font-size:1.1rem;margin:0 0 1rem}.invite-list table{width:100%;border-collapse:collapse}.invite-list th,.invite-list td{text-align:left;padding:.5rem .75rem;border-bottom:1px solid #e5e7eb;font-size:.9rem}.invite-list th{font-weight:600;color:#374151}.empty-state{color:#6b7280;font-size:.9rem}.status-badge{padding:2px 8px;border-radius:12px;font-size:.75rem;font-weight:600}.status-pending{background:#fef3c7;color:#92400e}.status-used{background:#d1fae5;color:#065f46}.input-disabled{background:#f3f4f6!important;color:#6b7280!important;cursor:not-allowed}@media(max-width:600px){.day-cell{min-height:60px;padding:.25rem}.dot{font-size:.55rem;padding:1px 4px}.app-header{flex-direction:column;gap:.5rem}}
