:root{font-family:system-ui,-apple-system,Arial,sans-serif;color:#18304b;background:#f1f5f9}*{box-sizing:border-box}body{margin:0}header{background:#102c49;color:#fff;padding:18px 22px;display:flex;justify-content:space-between;gap:12px}header strong{font-size:22px}header span{font-weight:400;color:#79d6dd}main{max-width:1250px;margin:auto;padding:18px}.card{background:#fff;border-radius:15px;padding:22px;box-shadow:0 3px 15px #102c4912;margin-bottom:15px}#login{max-width:410px;margin:10vh auto}.grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);gap:18px}nav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}h2{margin:0 0 18px;font-size:19px}label{display:block;margin:12px 0;font-size:14px;font-weight:600}input,select{display:block;width:100%;padding:12px;border:1px solid #cbd5e1;border-radius:9px;margin-top:5px;font:inherit;background:white}button{border:0;background:#17638d;color:white;border-radius:9px;padding:12px 15px;cursor:pointer;font-weight:650}button.secondary{background:#e2e8f0;color:#234}nav input{width:auto;margin:0}nav button{padding:10px 13px}.event{display:flex;justify-content:space-between;align-items:center;gap:8px;border-left:5px solid #2563eb;padding:14px;background:#f8fafc;margin:9px 0;border-radius:9px}.event small{display:block;color:#64748b;margin-top:4px}.avail{padding:7px;border-bottom:1px solid #eee;display:flex;align-items:center;justify-content:space-between}#message{color:#0f766e;font-weight:600}[hidden]{display:none!important}@media(max-width:760px){.grid{grid-template-columns:1fr}.card{padding:16px}main{padding:10px}header{padding:14px}nav{gap:5px}nav button{padding:10px}nav input{max-width:145px}}

/* v0.2 calendar interface */
.view-switch{display:flex;gap:6px;margin:12px 0;flex-wrap:wrap}.view-switch button{padding:9px 13px}.view-switch .active{background:#102c49;color:white}.calendar-grid{display:grid;gap:5px;overflow-x:auto}.calendar-grid.day{grid-template-columns:minmax(280px,1fr)}.calendar-grid.week{grid-template-columns:repeat(7,minmax(135px,1fr))}.calendar-grid.month{grid-template-columns:repeat(7,minmax(110px,1fr))}.cal-day{border:1px solid #dbe4ef;border-radius:9px;min-width:0;background:#fff}.cal-head{background:#eef4fa;padding:10px 5px;text-align:center;font-weight:700;position:sticky;top:0}.time-slot{min-height:42px;border-bottom:1px solid #edf0f4;padding:3px;cursor:pointer}.time-slot:hover{background:#eef8fd}.time-label{font-size:10px;color:#718096;display:block}.cal-event{display:block;border-left:4px solid #16749b;background:#eaf4f9;padding:4px 5px;margin:2px 0;border-radius:3px;font-size:11px;overflow-wrap:anywhere}.month .cal-day{min-height:105px}.month .cal-event{font-size:10px}@media(max-width:700px){.calendar-grid.week{grid-template-columns:repeat(7,minmax(145px,1fr))}.calendar-grid.month{grid-template-columns:repeat(7,minmax(115px,1fr))}.cal-head{font-size:12px}}
/* ORIS Calendar v0.2 — desktop fullscreen override */
@media (min-width: 761px) {
  main#app {max-width:none;width:100%;margin:0;padding:18px 24px;}
  #workspace {width:100%;}
  #workspace > .grid {width:100%;grid-template-columns:minmax(0,3fr) minmax(320px,1fr);gap:18px;align-items:start;}
  #workspace > .grid > .card {min-width:0;}
  #calendar {width:100%;min-width:0;}
  .calendar-grid {width:100%;}
  .calendar-grid.week {grid-template-columns:repeat(7,minmax(0,1fr));}
  .calendar-grid.month {grid-template-columns:repeat(7,minmax(0,1fr));}
}

/* v0.3 desktop-first calendar and appointment modal */
:root{--oris-navy:#112e4a;--oris-blue:#16749b;--oris-border:#e2eaf2;--oris-bg:#f4f7fb}
body{background:var(--oris-bg);color:#20364c}header{padding:14px 22px;align-items:center;min-height:58px}
main#app{max-width:none;width:100%;padding:22px 24px;margin:0}
#login{margin:10vh auto}
.app-toolbar{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:18px}
.toolbar-title h1{font-size:25px;letter-spacing:-.6px;margin:4px 0 0}
.eyebrow{font-size:10px;letter-spacing:1.5px;font-weight:800;color:#56849f}
.app-toolbar nav{margin:0;align-items:center}
.app-toolbar nav input{min-height:42px}
.calendar-shell{background:#fff;border:1px solid var(--oris-border);border-radius:17px;box-shadow:0 8px 30px #1d3a5610;padding:20px;min-height:calc(100vh - 175px)}
.calendar-toolbar{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-bottom:17px;flex-wrap:wrap}
.calendar-controls,.calendar-actions{display:flex;align-items:end;gap:12px;flex-wrap:wrap}
.doctor-control{margin:0;min-width:260px}.doctor-control select{margin-top:6px;min-width:260px}
.view-switch{margin:0;align-items:center;background:#eef4f8;padding:4px;border-radius:11px;gap:3px}
.view-switch button{background:transparent;color:#456075;padding:11px 16px}
.view-switch button.active{background:#fff;color:#0e4264;box-shadow:0 1px 6px #173c5d22}
.calendar-actions button{min-height:43px}
#newAppointment{background:#0b779d}
#calendar{width:100%;min-width:0}
.calendar-grid{gap:0;border:1px solid var(--oris-border);border-radius:12px;overflow:hidden}
.calendar-grid.week,.calendar-grid.month{grid-template-columns:repeat(7,minmax(0,1fr))}
.cal-day{border:0;border-right:1px solid var(--oris-border);border-radius:0}.cal-day:last-child{border-right:0}
.cal-head{background:#f4f8fc;padding:15px 8px;border-bottom:1px solid var(--oris-border);font-size:13px}
.time-slot{min-height:46px;padding:5px 8px}.time-label{font-size:11px;color:#7891a6}
.time-slot:hover{background:#eaf7fc}.cal-event{font-size:12px;padding:6px;border-radius:5px}
.month .cal-day{min-height:125px}
.modal-layer{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px}
.modal-layer[hidden]{display:none!important}
.modal-backdrop{position:absolute;inset:0;background:rgba(12,29,47,.55);backdrop-filter:blur(3px)}
.modal-card{position:relative;z-index:1;background:#fff;border-radius:19px;box-shadow:0 24px 90px #0c213e55;width:min(100%,620px);max-height:calc(100vh - 40px);overflow:auto;padding:28px}
.modal-head{display:flex;justify-content:space-between;gap:20px;align-items:start;border-bottom:1px solid var(--oris-border);padding-bottom:17px;margin-bottom:18px}
.modal-head h2{font-size:24px;margin:4px 0 4px;letter-spacing:-.5px}.modal-head p{color:#718498;margin:0;font-size:13px}
.icon-close{border:0;background:#eef4f8;color:#183e59;font-size:26px;line-height:1;width:37px;height:37px;padding:0}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 16px}.form-grid label{margin:8px 0;font-size:13px;color:#3e5266}
.form-grid .full-row{grid-column:1/-1}.form-grid input,.form-grid select{min-height:45px}
.modal-footer{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--oris-border);padding-top:18px;margin-top:18px}
.modal-open{overflow:hidden}.availability-modal h3{font-size:15px;margin:25px 0 10px}
#toast{position:fixed;right:24px;bottom:20px;z-index:1200;background:#133c54;color:white;padding:13px 18px;border-radius:11px;box-shadow:0 10px 30px #0002;opacity:0;pointer-events:none;transform:translateY(12px);transition:.2s;max-width:440px}
#toast.visible{opacity:1;transform:translateY(0)}
@media(max-width:760px){main#app{padding:12px}.app-toolbar{display:block}.toolbar-title h1{font-size:21px}.app-toolbar nav{margin-top:14px}.calendar-shell{padding:12px;min-height:70vh}.calendar-controls,.calendar-actions{width:100%}.doctor-control,.doctor-control select{min-width:0;width:100%}.calendar-grid.week{grid-template-columns:repeat(7,minmax(145px,1fr));overflow-x:auto}.modal-card{padding:18px}.form-grid{grid-template-columns:1fr}.form-grid .full-row{grid-column:auto}}

/* v0.3.4 official logo */
header .brand{display:flex;align-items:center;gap:13px;min-width:0}
header .brand img{display:block;width:auto;height:37px;max-width:220px;object-fit:contain}
header .brand-calendar{font-size:22px;font-weight:400;color:#7dd6e5;letter-spacing:.1px;white-space:nowrap}
@media(max-width:600px){header .brand img{height:28px;max-width:155px}header .brand-calendar{font-size:18px}header .brand{gap:8px}}

/* ORIS Calendar v0.4 — mobile PWA only, desktop unchanged */
.mobile-bottom-nav{display:none}
@media(max-width:760px){
 body{padding-bottom:calc(78px + env(safe-area-inset-bottom));background:#f3f7fb}
 header{min-height:58px;padding:12px 14px}#identity{font-size:11px;max-width:115px;text-align:right}
 main#app{padding:10px 10px 22px}.app-toolbar{margin:0 0 10px}.toolbar-title{display:none}
 .app-toolbar nav{margin:0;display:flex;gap:6px;align-items:center;justify-content:space-between;flex-wrap:nowrap}
 .app-toolbar nav button{min-width:36px;padding:11px 9px}.app-toolbar nav input{flex:1;min-width:0;max-width:none;font-size:13px;padding:10px 6px}
 #refresh,#logout{display:none}.calendar-shell{padding:13px;border-radius:15px;min-height:calc(100dvh - 205px)}
 .calendar-toolbar{display:block;margin-bottom:12px}.calendar-controls{display:flex;align-items:end;gap:10px}
 .doctor-control{flex:1;margin:0}.doctor-control select{min-height:42px;font-size:14px}
 .view-switch{width:100%;display:grid;grid-template-columns:repeat(3,1fr);margin-top:10px}
 .view-switch button{padding:11px 6px;font-size:13px}
 .calendar-actions{display:none}
 .calendar-grid.week,.calendar-grid.month{overflow-x:auto;grid-template-columns:repeat(7,minmax(130px,1fr))}
 .calendar-grid.month{grid-template-columns:repeat(7,minmax(100px,1fr))}
 .mobile-bottom-nav{position:fixed;z-index:500;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;background:#fff;border-top:1px solid #e2eaf2;padding:8px 4px calc(8px + env(safe-area-inset-bottom));box-shadow:0 -5px 25px #102c4914}
 .mobile-bottom-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:transparent;color:#6b8092;border-radius:8px;font-size:10px;font-weight:650;padding:4px 0;min-height:49px}
 .mobile-bottom-nav button span{font-size:23px;line-height:1}.mobile-bottom-nav button.selected{color:#0b779d}
 .mobile-bottom-nav .mobile-add span{background:#0b779d;color:white;width:42px;height:42px;display:grid;place-items:center;border-radius:14px;margin-top:-22px;box-shadow:0 4px 12px #0b779d44}
 .mobile-agenda{min-height:50vh}.agenda-heading{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:10px 2px 15px;border-bottom:1px solid #e4ecf3}.agenda-heading strong{font-size:17px;text-transform:capitalize}.agenda-heading span{font-size:12px;color:#70869a;white-space:nowrap}
 .agenda-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:56px 12px 38px;color:#3d5265}.agenda-empty-icon{display:grid;place-items:center;width:64px;height:64px;border-radius:20px;background:#e8f4f9;color:#0b779d;font-size:32px;margin-bottom:18px}.agenda-empty strong{font-size:16px}.agenda-empty p{font-size:13px;line-height:1.5;color:#8092a1}
 .agenda-event{display:flex;gap:14px;align-items:center;border-bottom:1px solid #e4ecf3;padding:15px 4px;border-left:4px solid var(--event-color);padding-left:12px}.agenda-time{font-size:15px;font-weight:750;min-width:55px;color:#123550}.agenda-time small{display:block;font-size:11px;color:#8193a4;margin-top:4px}.agenda-details{display:flex;flex-direction:column;gap:5px;min-width:0}.agenda-details strong{font-size:14px;overflow-wrap:anywhere}.agenda-details span{font-size:12px;color:#6f8599}
 .agenda-book{width:100%;margin-top:22px;padding:15px;background:#0b779d}
 .modal-layer{padding:0;align-items:end}.modal-card{width:100%;max-height:94dvh;border-radius:20px 20px 0 0;padding:20px 17px calc(20px + env(safe-area-inset-bottom));box-shadow:0 -10px 50px #0003}
 .modal-head h2{font-size:21px}.modal-footer{position:sticky;bottom:0;background:white;padding:12px 0 0}.modal-footer button{flex:1}
 #toast{bottom:calc(85px + env(safe-area-inset-bottom));left:12px;right:12px;max-width:none}
}

/* v0.4.1 mobile layout corrections */
@media(max-width:760px){
 .calendar-grid.week{grid-template-columns:repeat(7,minmax(0,calc((100% - 12px)/3)));gap:6px;overflow-x:auto;scroll-snap-type:x proximity;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
 .calendar-grid.week>.cal-day{scroll-snap-align:start;min-width:0}
 .modal-layer{align-items:end;overflow:hidden}
 .modal-card{display:flex;flex-direction:column;overflow:hidden;max-height:calc(100dvh - 12px);height:auto;padding:0;border-radius:22px 22px 0 0}
 .modal-head{flex:0 0 auto;padding:20px 18px 16px;margin:0}
 .modal-card form{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:18px 18px calc(20px + env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch}
 #bookForm{display:flex;flex-direction:column}
 #bookForm .form-grid{flex:1 0 auto}
 #bookForm .modal-footer{position:sticky;bottom:calc(-20px - env(safe-area-inset-bottom));z-index:2;flex:0 0 auto;margin:18px -18px calc(-20px - env(safe-area-inset-bottom));padding:12px 18px calc(12px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #e2eaf2;box-shadow:0 -6px 20px #102c490d}
 .availability-modal form{flex:0 0 auto;overflow:visible;padding-bottom:12px}
 .availability-modal{overflow-y:auto}
 .availability-modal .modal-head{position:sticky;top:0;background:#fff;z-index:2}
 input[type=time]{font-variant-numeric:tabular-nums}
}

.availability-doctor-bar{padding:8px 0 14px;border-bottom:1px solid #e1e9f0}.availability-doctor-bar label{font-weight:700}.availability-doctor-label{margin-top:8px;color:#17678b;font-weight:700;font-size:13px}.google-body{padding:8px 0}.google-hint{font-size:13px;color:#617487;line-height:1.5}.google-actions{display:flex;gap:8px;flex-wrap:wrap}.google-actions button{margin:4px 0}.google-modal{max-width:600px}@media(max-width:760px){.google-body{padding:20px}.google-actions{flex-direction:column}.google-actions button{width:100%}}
