:root{--bg:silver;--bg-secondary:silver;--bg-surface:silver;--bg-hover:#d4d4d4;--text:#000;--text-secondary:#000;--text-muted:grey;--border:grey;--accent:navy;--accent-hover:#0000a0;--danger:red;--success:green;--border-light:#fff;--border-dark:grey;--border-darker:#404040;--cal-1:navy;--cal-2:purple;--cal-3:green;--cal-4:olive;--cal-1-bg:silver;--cal-2-bg:silver;--cal-3-bg:silver;--cal-4-bg:silver;--header-height:56px;--hour-height:60px;--time-col-width:56px;--titlebar-bg:navy;--titlebar-text:#fff}*{box-sizing:border-box;margin:0;padding:0}html{color-scheme:light}body{font-family:"MS Sans Serif",Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:teal;color:var(--text);-webkit-font-smoothing:none;-moz-osx-font-smoothing:unset;min-height:100vh;padding:8px}body,button{font-size:11px}button{cursor:pointer;font-family:inherit}.win-raised{border:2px solid;border-color:var(--border-light) var(--border-darker) var(--border-darker) var(--border-light);box-shadow:inset -1px -1px 0 var(--border-dark),inset 1px 1px 0 #dfdfdf}.win-sunken{border:2px solid;border-color:var(--border-dark) var(--border-light) var(--border-light) var(--border-dark);box-shadow:inset 1px 1px 0 var(--border-darker)}.win-window{background:var(--bg);border:2px solid;border-color:var(--border-light) var(--border-darker) var(--border-darker) var(--border-light);box-shadow:inset -1px -1px 0 var(--border-dark),inset 1px 1px 0 #dfdfdf}.login-container{display:flex;align-items:center;justify-content:center;min-height:100vh}.login-form{background:var(--bg-surface);padding:0;border:2px solid;border-color:var(--border-light) var(--border-darker) var(--border-darker) var(--border-light);box-shadow:inset -1px -1px 0 var(--border-dark),inset 1px 1px 0 #dfdfdf;width:320px;display:flex;flex-direction:column}.login-form h1{background:linear-gradient(90deg,navy,#1084d0);color:var(--titlebar-text);font-size:12px;font-weight:700;padding:3px 6px;margin:0;text-align:left}.login-form>div,.login-form>p{padding:12px}.login-form input{padding:4px;border:2px solid;border-color:var(--border-dark) var(--border-light) var(--border-light) var(--border-dark);box-shadow:inset 1px 1px 0 var(--border-darker);background:#fff;color:var(--text);font-size:11px;font-family:inherit;outline:none;width:100%;margin-top:6px}.login-form input:focus{outline:1px dotted var(--accent);outline-offset:-4px}.login-form button{padding:4px 16px;border:2px solid;border-color:var(--border-light) var(--border-darker) var(--border-darker) var(--border-light);box-shadow:inset -1px -1px 0 var(--border-dark),inset 1px 1px 0 #dfdfdf;background:var(--bg);color:var(--text);font-size:11px;font-weight:400;min-width:75px;margin-top:12px}.login-form button:hover{background:var(--bg-hover)}.login-form button:active{border-color:var(--border-darker) var(--border-light) var(--border-light) var(--border-darker);box-shadow:inset 1px 1px 0 var(--border-dark);padding:5px 15px 3px 17px}.login-form button:disabled{color:var(--border-dark);text-shadow:1px 1px 0 var(--border-light)}.login-error{color:var(--danger);font-size:11px;text-align:center;padding:8px}.room-legend{gap:12px;padding:4px 8px;background:var(--bg-secondary);border-bottom:1px solid var(--border-dark);flex-wrap:wrap}.room-legend,.room-legend-item{display:flex;align-items:center}.room-legend-item{gap:4px}.room-legend-color{width:12px;height:12px;border:1px solid var(--border-dark);flex-shrink:0}.room-legend-hint,.room-legend-name{font-size:11px;color:var(--text)}.room-legend-hint{margin-left:auto;padding:2px 8px;background:var(--bg);border:2px solid;border-color:var(--border-dark) var(--border-light) var(--border-light) var(--border-dark);box-shadow:inset 1px 1px 0 var(--border-darker)}.room-legend-hint.desktop-only{display:inline-block}.booking-mode-toggle{font-size:11px;padding:2px 8px;background:var(--bg);color:var(--text);border:2px solid;border-color:var(--border-light) var(--border-darker) var(--border-darker) var(--border-light);box-shadow:inset -1px -1px 0 var(--border-dark),inset 1px 1px 0 #dfdfdf;cursor:pointer}.booking-mode-toggle:hover{background:var(--bg-hover)}.booking-mode-toggle.active,.booking-mode-toggle:active{border-color:var(--border-darker) var(--border-light) var(--border-light) var(--border-darker);box-shadow:inset 1px 1px 0 var(--border-dark)}.booking-mode-toggle.active{background:var(--bg-hover)}.calendar-header{gap:8px;padding:3px 4px;height:var(--header-height);background:linear-gradient(90deg,navy,#1084d0);flex-shrink:0}.calendar-header,.header-nav{display:flex;align-items:center}.header-nav{gap:2px}.header-nav button{padding:3px 8px;border:2px solid;border-color:var(--border-light) var(--border-darker) var(--border-darker) var(--border-light);box-shadow:inset -1px -1px 0 var(--border-dark),inset 1px 1px 0 #dfdfdf;background:var(--bg);color:var(--text);font-size:11px;font-weight:700}.header-nav button:hover{background:var(--bg-hover)}.header-nav button:active{border-color:var(--border-darker) var(--border-light) var(--border-light) var(--border-darker);box-shadow:inset 1px 1px 0 var(--border-dark)}.header-date{font-size:12px;font-weight:700;min-width:200px;color:var(--titlebar-text);text-shadow:1px 1px 0 #000040}.header-views{display:flex;gap:2px;margin-left:8px}.header-views button{padding:3px 12px;border:2px solid;border-color:var(--border-light) var(--border-darker) var(--border-darker) var(--border-light);box-shadow:inset -1px -1px 0 var(--border-dark),inset 1px 1px 0 #dfdfdf;background:var(--bg);color:var(--text);font-size:11px}.header-views button:first-child,.header-views button:last-child{border-radius:0}.header-views button:hover{background:var(--bg-hover)}.header-views button.active,.header-views button:active{border-color:var(--border-darker) var(--border-light) var(--border-light) var(--border-darker);box-shadow:inset 1px 1px 0 var(--border-dark)}.header-views button.active{background:var(--bg-hover)}.header-spacer{flex:1 1}.btn-new-event{padding:3px 12px;border:2px solid;border-color:var(--border-light) var(--border-darker) var(--border-darker) var(--border-light);box-shadow:inset -1px -1px 0 var(--border-dark),inset 1px 1px 0 #dfdfdf;background:var(--bg);color:var(--text);font-size:11px;font-weight:700}.btn-new-event:hover{background:var(--bg-hover)}.btn-new-event:active{border-color:var(--border-darker) var(--border-light) var(--border-light) var(--border-darker);box-shadow:inset 1px 1px 0 var(--border-dark)}.btn-logout{padding:3px 8px;border:2px solid;border-color:var(--border-light) var(--border-darker) var(--border-darker) var(--border-light);box-shadow:inset -1px -1px 0 var(--border-dark),inset 1px 1px 0 #dfdfdf;background:var(--bg);color:var(--text);font-size:11px}.btn-logout:hover{background:var(--bg-hover)}.btn-logout:active{border-color:var(--border-darker) var(--border-light) var(--border-light) var(--border-darker);box-shadow:inset 1px 1px 0 var(--border-dark)}main{border:2px solid;border-color:var(--border-light) var(--border-darker) var(--border-darker) var(--border-light);box-shadow:inset -1px -1px 0 var(--border-dark),inset 1px 1px 0 #dfdfdf,4px 4px 0 rgba(0,0,0,.3);margin:0}.calendar-container,main{background:var(--bg);overflow:hidden}.calendar-container{display:flex;flex-direction:column;height:calc(100vh - var(--header-height) - 24px)}.calendar-day-headers{display:grid;border-bottom:2px solid var(--border-dark);background:var(--bg-secondary);flex-shrink:0}.calendar-day-headers.week-view{grid-template-columns:var(--time-col-width) repeat(7,1fr)}.calendar-day-headers.day-view{grid-template-columns:var(--time-col-width) 1fr}.day-header{padding:4px;text-align:center;font-size:11px;color:var(--text);border-left:1px solid var(--border-dark);background:var(--bg)}.day-header .day-number{font-size:14px;font-weight:700;color:var(--text)}.day-header.today .day-number{background:var(--accent);color:#fff;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center}.time-header{width:var(--time-col-width)}.calendar-grid-scroll{overflow-y:auto;flex:1 1;background:#fff;border:2px solid;border-color:var(--border-dark) var(--border-light) var(--border-light) var(--border-dark);box-shadow:inset 1px 1px 0 var(--border-darker)}.calendar-grid{display:grid;position:relative;min-height:calc(var(--hour-height) * 16);background:#fff}.calendar-grid.week-view{grid-template-columns:var(--time-col-width) repeat(7,1fr)}.calendar-grid.day-view{grid-template-columns:var(--time-col-width) 1fr}.time-column{grid-row:1;grid-column:1;background:var(--bg)}.time-label{height:var(--hour-height);padding:0 4px;font-size:10px;color:var(--text);text-align:right;position:relative;top:-.5em;font-weight:700}.day-column{position:relative;border-left:1px solid var(--border-dark);grid-row:1;cursor:crosshair;background:#fff}.hour-row{height:var(--hour-height);border-bottom:1px solid var(--border)}.hour-row-half{height:calc(var(--hour-height) / 2);border-bottom:1px dotted var(--border)}.event-block{position:absolute;padding:2px 4px;font-size:10px;line-height:1.3;overflow:hidden;cursor:pointer;border:2px solid;border-color:var(--border-light) var(--border-darker) var(--border-darker) var(--border-light);z-index:1;box-sizing:border-box}.event-block:hover{z-index:2}.event-block:active{border-color:var(--border-darker) var(--border-light) var(--border-light) var(--border-darker)}.event-block.cal-1{background:#c0c0ff;border-color:#fff navy navy #fff;color:navy}.event-block.cal-2{background:#ffc0ff;border-color:#fff purple purple #fff;color:purple}.event-block.cal-3{background:#c0ffc0;border-color:#fff green green #fff;color:green}.event-block.cal-4{background:#ffffc0;border-color:#fff olive olive #fff;color:olive}.event-block .event-time{font-size:9px}.event-block .event-title{font-weight:700}.all-day-row{display:grid;border-bottom:2px solid var(--border-dark);background:var(--bg-secondary);min-height:24px}.all-day-row.week-view{grid-template-columns:var(--time-col-width) repeat(7,1fr)}.all-day-row.day-view{grid-template-columns:var(--time-col-width) 1fr}.all-day-label{font-size:10px;color:var(--text);padding:4px;text-align:right;font-weight:700}.all-day-cell{border-left:1px solid var(--border-dark);padding:2px;display:flex;flex-direction:column;gap:1px;background:#fff}.all-day-event{padding:1px 4px;font-size:10px;font-weight:700;cursor:pointer;border:1px solid}.all-day-event.cal-1{background:#c0c0ff;border-color:navy;color:navy}.all-day-event.cal-2{background:#ffc0ff;border-color:purple;color:purple}.all-day-event.cal-3{background:#c0ffc0;border-color:green;color:green}.all-day-event.cal-4{background:#ffffc0;border-color:olive;color:olive}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--bg-surface);border:2px solid;border-color:var(--border-light) var(--border-darker) var(--border-darker) var(--border-light);box-shadow:inset -1px -1px 0 var(--border-dark),inset 1px 1px 0 #dfdfdf,4px 4px 0 rgba(0,0,0,.3);padding:0;width:420px;max-width:90vw;max-height:90vh;overflow-y:auto}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:3px 4px;background:linear-gradient(90deg,navy,#1084d0);margin:0}.modal-header h2{font-size:12px;font-weight:700;margin:0;color:var(--titlebar-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.modal-close{background:var(--bg);border:2px solid;border-color:var(--border-light) var(--border-darker) var(--border-darker) var(--border-light);font-size:10px;font-weight:700;color:var(--text);cursor:pointer;padding:0;width:18px;height:18px;line-height:1;flex-shrink:0;display:flex;align-items:center;justify-content:center}.modal-close:hover{background:var(--bg-hover)}.modal-close:active{border-color:var(--border-darker) var(--border-light) var(--border-light) var(--border-darker)}.modal h2{font-size:12px;margin-bottom:8px}.modal-form{gap:8px;padding:12px}.form-group,.modal-form{display:flex;flex-direction:column}.form-group{gap:4px}.form-group label{font-size:11px;color:var(--text);font-weight:700}.form-group input,.form-group select,.form-group textarea{padding:4px;border:2px solid;border-color:var(--border-dark) var(--border-light) var(--border-light) var(--border-dark);box-shadow:inset 1px 1px 0 var(--border-darker);background:#fff;color:var(--text);font-size:11px;font-family:inherit;outline:none}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:1px dotted var(--text);outline-offset:-4px}.form-group textarea{resize:vertical;min-height:50px}.room-selector{display:flex;flex-direction:column;gap:4px}.room-option{display:flex;align-items:flex-start;gap:8px;padding:6px;border:2px solid;border-color:var(--border-dark) var(--border-light) var(--border-light) var(--border-dark);box-shadow:inset 1px 1px 0 var(--border-darker);background:#fff;cursor:pointer}.room-option:hover{background:#ffc}.room-option.selected{background:var(--accent);color:#fff;border-color:var(--border-dark) var(--border-light) var(--border-light) var(--border-dark)}.room-option.selected .room-description,.room-option.selected .room-name{color:#fff}.room-color{width:16px;height:16px;border:1px solid var(--border-dark);flex-shrink:0}.room-info{display:flex;flex-direction:column;gap:2px}.room-name{font-size:11px;font-weight:700;color:var(--text)}.room-description{font-size:10px;color:var(--text-muted)}.modal-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:8px;padding:0 12px 12px}.modal-actions button{padding:4px 16px;font-size:11px;font-weight:400;border:2px solid;border-color:var(--border-light) var(--border-darker) var(--border-darker) var(--border-light);box-shadow:inset -1px -1px 0 var(--border-dark),inset 1px 1px 0 #dfdfdf;min-width:75px}.btn-cancel{background:var(--bg);color:var(--text)}.btn-cancel:hover{background:var(--bg-hover)}.btn-cancel:active{border-color:var(--border-darker) var(--border-light) var(--border-light) var(--border-darker);box-shadow:inset 1px 1px 0 var(--border-dark)}.btn-submit{background:var(--bg);color:var(--text)}.btn-submit:hover{background:var(--bg-hover)}.btn-submit:active{border-color:var(--border-darker) var(--border-light) var(--border-light) var(--border-darker);box-shadow:inset 1px 1px 0 var(--border-dark)}.btn-submit:disabled{color:var(--border-dark);text-shadow:1px 1px 0 var(--border-light)}.btn-delete{background:var(--bg);color:var(--danger);border:2px solid!important;border-color:var(--border-light) var(--border-darker) var(--border-darker) var(--border-light)!important;box-shadow:inset -1px -1px 0 var(--border-dark),inset 1px 1px 0 #dfdfdf!important}.btn-delete:hover{background:#fcc}.btn-delete:active{border-color:var(--border-darker) var(--border-light) var(--border-light) var(--border-darker)!important;box-shadow:inset 1px 1px 0 var(--border-dark)!important}.event-detail{display:flex;flex-direction:column;gap:8px;padding:12px}.event-detail .detail-row{display:flex;flex-direction:column;gap:2px}.event-detail .detail-label{font-size:10px;color:var(--text-muted);text-transform:uppercase;font-weight:700}.event-detail .detail-value{font-size:11px;padding:4px;background:#fff;border:2px solid;border-color:var(--border-dark) var(--border-light) var(--border-light) var(--border-dark);box-shadow:inset 1px 1px 0 var(--border-darker)}.event-detail .calendar-badge{display:inline-block;padding:2px 6px;font-size:11px;font-weight:700;border:1px solid}.loading{display:flex;align-items:center;justify-content:center;height:calc(100vh - var(--header-height));color:var(--text);font-size:12px;background:var(--bg)}.error-banner{background:#fcc;border:2px solid var(--danger);color:var(--danger);padding:4px 8px;font-size:11px;text-align:center;font-weight:700}.current-time-line{position:absolute;left:0;right:0;height:2px;background:var(--danger);z-index:3;pointer-events:none}.current-time-line:before{content:"";position:absolute;left:-4px;top:-3px;width:8px;height:8px;background:var(--danger)}@media (max-width:768px){:root{--header-height:48px;--hour-height:50px;--time-col-width:42px}body{padding:4px}.calendar-header{gap:4px;flex-wrap:wrap;height:auto;min-height:var(--header-height);padding:4px}.header-date{font-size:11px;min-width:auto;order:-1;width:100%;text-align:center;margin-bottom:2px}.header-nav{gap:2px}.btn-logout,.btn-new-event,.header-nav button,.header-views button{padding:2px 6px;font-size:10px}.room-legend{padding:2px 4px;gap:6px}.room-legend-color{width:10px;height:10px}.room-legend-name{font-size:10px}.room-legend-hint.desktop-only{display:none}.booking-mode-toggle{margin-left:auto}.day-header{padding:2px;font-size:9px}.day-header .day-number{font-size:12px}.day-header.today .day-number{width:20px;height:20px}.time-label{font-size:8px;padding:0 2px}.event-block{font-size:8px;padding:1px 2px}.event-block .event-time{font-size:7px}.modal{width:95vw;max-height:95vh}.modal-header h2{font-size:11px}.form-group label{font-size:10px}.form-group input,.form-group select,.form-group textarea{font-size:16px;padding:4px}.room-option{padding:4px}.room-name{font-size:10px}.room-description{font-size:9px}.login-form{width:90vw;max-width:320px}.login-form input{font-size:16px}.calendar-container{height:calc(100vh - var(--header-height) - 70px)}}@media (max-width:480px){:root{--time-col-width:36px}.header-views{margin-left:0}.header-spacer{display:none}.calendar-header{justify-content:center}.day-header .day-number{font-size:10px}.day-header.today .day-number{width:18px;height:18px}.time-label{font-size:7px;padding:0 1px}}