:root{--crimson:#9c1552;--accent:#29c5e6;--text:#222;--muted:#777;--line:#e6e6e6;--strip-background:#f1f1f1;--hour-label-width:64px;color:var(--text);font-family:Roboto,Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:#fff}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}.app{background:#fff;flex-direction:column;max-width:640px;height:100%;margin:0 auto;display:flex}.main{flex:1;min-height:0;position:relative}.header{padding:calc(12px + env(safe-area-inset-top)) 16px 12px;background:var(--crimson);color:#fff;align-items:center;gap:8px;display:flex}.header-date{align-items:center;gap:6px;margin-right:auto;padding:6px 8px;font-size:26px;font-weight:500;display:flex}.header-icon-button{color:var(--accent);padding:8px;display:flex}.hidden-date-input{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.date-strip{background:var(--strip-background);scrollbar-width:none;display:flex;overflow-x:auto}.date-strip::-webkit-scrollbar{display:none}.date-strip-day{border:2px solid #0000;flex-direction:column;flex:none;align-items:center;width:16.66%;min-width:64px;padding:6px 0;display:flex}.date-strip-day.selected{border-color:var(--accent);background:#fff}.date-strip-day.today .date-strip-number{color:var(--crimson);font-weight:700}.date-strip-weekday{font-size:15px}.date-strip-number{font-size:22px}.error-banner{color:#8a1c25;background:#fde2e4;padding:8px 16px;font-size:14px}.day-view{height:100%;overflow-y:auto}.day-view-grid{position:relative}.hour-row{align-items:center;height:0;display:flex;position:absolute;left:0;right:0}.hour-label{width:var(--hour-label-width);text-align:right;color:#555;padding-right:12px;font-size:15px}.hour-line{border-top:1px solid var(--line);flex:1}.events-area{top:0;bottom:0;left:calc(var(--hour-label-width) + 8px);position:absolute;right:0}.event-block{text-align:left;border-bottom:2px solid #fff;border-left:4px solid;flex-wrap:wrap;align-content:flex-start;gap:2px 12px;padding:6px 8px;display:flex;position:absolute;overflow:hidden}.event-title{text-transform:uppercase;letter-spacing:.3px;font-size:15px;font-weight:500}.event-time{color:#555;font-size:15px}.event-repeat{color:#555;align-items:center;display:flex}.fab{background:var(--accent);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;display:flex;position:absolute;bottom:20px;right:20px;box-shadow:0 3px 8px #0000004d}.bottom-nav{padding-bottom:env(safe-area-inset-bottom);background:#fff;border-top:1px solid #ccc;display:flex}.bottom-nav-tab{color:#aaa;flex-direction:column;flex:1;align-items:center;gap:2px;padding:8px 0;font-size:14px;display:flex}.bottom-nav-tab:disabled{cursor:default}.bottom-nav-tab.active{color:#1a2a55}.sheet-backdrop{background:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{width:100%;max-width:640px;padding:20px 20px calc(20px + env(safe-area-inset-bottom));background:#fff;border-radius:16px 16px 0 0;flex-direction:column;gap:14px;display:flex}.sheet h2{margin:0;font-size:20px;font-weight:500}.sheet label{color:var(--muted);flex-direction:column;flex:1;gap:4px;font-size:13px;display:flex}.sheet input,.sheet select{font:inherit;color:var(--text);background:#fff;border:1px solid #ccc;border-radius:8px;padding:10px;font-size:16px}.form-row{gap:12px;display:flex}.form-note,.form-error{margin:0;font-size:14px}.form-note{color:var(--muted)}.form-error{color:#c62d3a}.form-buttons{gap:8px;display:flex}.spacer{flex:1}.form-buttons button{border-radius:8px;padding:10px 16px;font-weight:500}.form-buttons button:disabled{opacity:.5}.button-primary{background:var(--crimson);color:#fff}.button-plain{color:var(--muted)}.button-danger{color:#c62d3a}
