:root{font-family:system-ui,-apple-system,sans-serif;--border: #d1d5db;--bar-bg: #1f2937}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:#f3f4f6}button{cursor:pointer;font:inherit}.calendar-screen{display:flex;flex-direction:column;height:100%}.loading{padding:2rem;text-align:center}.login{max-width:320px;margin:4rem auto;display:flex;flex-direction:column;gap:.75rem;padding:1.5rem;background:#fff;border-radius:8px}.login h1{margin:0 0 .5rem;font-size:1.25rem;text-align:center}.login input{padding:.6rem;border:1px solid var(--border);border-radius:6px}.login button{padding:.6rem;border:0;border-radius:6px;background:var(--bar-bg);color:#fff}.error{color:#dc2626;margin:0;font-size:.9rem}.calendar-screen__bar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.5rem .75rem;background:var(--bar-bg);color:#fff}.calendar-screen__bar button{padding:.4rem .7rem;border:0;border-radius:6px;background:#374151;color:#fff}.calendar-screen__add{background:#2563eb!important}.calendar-screen__mobile-nav{display:flex;align-items:center;gap:.5rem}.week-grid{flex:1 1 auto;min-height:0;display:grid;grid-template-columns:56px repeat(var(--day-count),minmax(0,1fr));grid-auto-rows:max-content;gap:1px;background:var(--border);padding:1px;overflow:auto}.week-grid__corner{position:sticky;top:0;left:0;z-index:3;background:#fff}.week-grid__hour-label{min-height:64px;display:flex;align-items:flex-start;justify-content:flex-end;padding:2px 4px;font-size:.75rem;color:#6b7280;background:#fff}.day-column__head{position:sticky;top:0;z-index:2;min-height:36px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-bottom:1px solid var(--border);font-size:.8rem;background:#fff}.day-column__weekday{font-weight:600}.day-column__date{color:#6b7280;font-size:.7rem}.slot-cell{min-height:64px;background:#fff;padding:2px;display:flex;flex-direction:column;gap:2px}.slot-cell__add{margin-top:auto;border:1px dashed var(--border);border-radius:4px;background:transparent;color:#9ca3af;font-size:.85rem;line-height:1.2}.appointment-card{text-align:left;border:1px solid var(--border);border-radius:4px;padding:3px 5px;display:flex;flex-direction:column;flex-shrink:0;font-size:.72rem}.appointment-card[data-status=not_started]{background:#f3f4f6;border-color:#d1d5db}.appointment-card[data-status=in_progress]{background:#fef3c7;border-color:#fbbf24}.appointment-card[data-status=done]{background:#d1fae5;border-color:#10b981}.appointment-card__model{font-weight:600}.appointment-card__works{color:#4b5563}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#00000073;display:flex;align-items:center;justify-content:center;padding:1rem}.modal__body{background:#fff;border-radius:8px;width:100%;max-width:380px;max-height:90vh;overflow-y:auto}.appointment-form{display:flex;flex-direction:column;gap:.6rem;padding:1.25rem}.appointment-form h2{margin:0;font-size:1.1rem}.appointment-form label{display:flex;flex-direction:column;gap:.2rem;font-size:.85rem}.appointment-form input,.appointment-form select,.appointment-form textarea{padding:.45rem;border:1px solid var(--border);border-radius:6px;font:inherit}.appointment-form textarea{resize:vertical;min-height:48px}.appointment-form__actions{display:flex;gap:.5rem;flex-wrap:wrap}.appointment-form__actions button{flex:1;padding:.55rem;border:0;border-radius:6px;background:#2563eb;color:#fff}.appointment-form__actions button[type=button]{background:#6b7280}.appointment-form__actions .danger{background:#dc2626}.voice-modal{padding:1.25rem;display:flex;flex-direction:column;gap:.75rem}.voice-modal h2{margin:0;font-size:1.1rem}.voice-modal__timer{font-size:2rem;font-variant-numeric:tabular-nums;text-align:center;margin:.25rem 0}.voice-modal__hint{color:#4b5563;font-size:.9rem;margin:0}.voice-modal__actions{display:flex;gap:.5rem;flex-wrap:wrap}.voice-modal__actions button{flex:1;padding:.55rem;border:0;border-radius:6px;background:#2563eb;color:#fff}.voice-modal__actions button[type=button]:last-child{background:#6b7280}.appointment-form__transcript{background:#fef3c7;border:1px solid #fbbf24;border-radius:6px;padding:.5rem .6rem;font-size:.85rem;color:#92400e}.calendar-screen__mic{background:#16a34a!important;font-size:1.05rem}.calendar-screen__mic[disabled]{opacity:.5;cursor:default}.appointment-form__status{display:flex;gap:.4rem;flex-wrap:wrap}.appointment-form__status-chip{flex:1 1 0;padding:.45rem .6rem;border:1px solid var(--border);border-radius:999px;background:#fff;color:#374151;font-size:.85rem}.appointment-form__status-chip[aria-pressed=true][data-status=not_started]{background:#f3f4f6;border-color:#9ca3af;color:#111827}.appointment-form__status-chip[aria-pressed=true][data-status=in_progress]{background:#fef3c7;border-color:#d97706;color:#78350f}.appointment-form__status-chip[aria-pressed=true][data-status=done]{background:#d1fae5;border-color:#047857;color:#064e3b}.calendar-screen__grid-wrap{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.calendar-screen__fab{position:fixed;left:66%;bottom:calc(17vh - 32px + env(safe-area-inset-bottom));transform:translate(-50%);width:64px;height:64px;border-radius:50%;z-index:50;background:#16a34a;color:#fff;border:0;font-size:1.4rem;box-shadow:0 2px 8px #0003}.calendar-screen__fab[disabled]{opacity:.5;cursor:default}@media(min-width:769px){.calendar-screen__fab{display:none}}
