:root{ --pi:oklch(0.265 0.013 66); --pi-soft:oklch(0.455 0.013 66);
  --pl:oklch(0.895 0.008 74); --pa:oklch(0.555 0.062 202); --pa-deep:oklch(0.470 0.058 205);
  --psurface:oklch(0.995 0.003 82); --pbg:oklch(0.973 0.006 78); --pslate:oklch(0.235 0.018 222); }
*{box-sizing:border-box}
body.pro{margin:0;font-family:"Outfit",system-ui,sans-serif;color:var(--pi);background:var(--pbg);line-height:1.55;-webkit-font-smoothing:antialiased;}
a{color:var(--pa-deep);}
.pro-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0.9rem 1.5rem;
  background:var(--psurface);border-bottom:1px solid var(--pl);position:sticky;top:0;z-index:10;}
.pro-brand{display:flex;align-items:center;gap:.6rem;color:var(--pi);text-decoration:none;font-family:"Cormorant Garamond",serif;font-size:1.4rem;font-weight:600;line-height:1;}
.pro-brand small{display:block;font-family:"Outfit";font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--pi-soft);margin-top:2px;}
.pro-nav{display:flex;gap:1.25rem;flex-wrap:wrap;align-items:center;}
.pro-nav a{color:var(--pi-soft);text-decoration:none;font-size:.9rem;font-weight:500;padding:.35rem .2rem;border-bottom:2px solid transparent;}
.pro-nav a:hover{color:var(--pa-deep);}
.pro-nav a.active{color:var(--pi);border-bottom-color:var(--pa);}
.pro-main{max-width:1000px;margin:2.5rem auto;padding:0 1.5rem;}
.pro-card{background:var(--psurface);border:1px solid var(--pl);border-radius:14px;padding:1.75rem;box-shadow:0 6px 18px oklch(.42 .02 70/.05);margin-bottom:1.5rem;}
.pro-flash{background:oklch(0.935 0.020 198);border:1px solid var(--pa);color:var(--pa-deep);padding:.8rem 1rem;border-radius:10px;margin-bottom:1.5rem;}
h1,h2,h3{font-family:"Cormorant Garamond",serif;font-weight:600;letter-spacing:-.01em;margin:0 0 .8rem;}
h1{font-size:2rem;}
p{margin:.4rem 0;}
label{display:block;margin-bottom:1rem;font-size:.9rem;}
label>span{display:block;font-weight:600;margin-bottom:.35rem;color:var(--pi-soft);font-size:.82rem;}
input,select,textarea{width:100%;padding:.7rem .85rem;border:1px solid var(--pl);border-radius:8px;font:inherit;background:var(--psurface);}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--pa);box-shadow:0 0 0 3px oklch(0.935 0.020 198);}
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.8rem 1.5rem;border-radius:999px;border:1px solid var(--pi);background:var(--pi);color:var(--pbg);font-weight:600;cursor:pointer;text-decoration:none;font-size:.92rem;}
.btn:hover{background:var(--pslate);color:#fff;}
.btn--ghost{background:transparent;color:var(--pi);border-color:var(--pl);}
.btn--ghost:hover{background:var(--pbg);color:var(--pi);}
.btn--sm{padding:.45rem .9rem;font-size:.82rem;}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem;}
.row-actions{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;}
table.pro{width:100%;border-collapse:collapse;}
table.pro th,table.pro td{text-align:left;padding:.7rem .6rem;border-bottom:1px solid var(--pl);font-size:.9rem;vertical-align:top;}
table.pro th{font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:var(--pi-soft);}
.badge{display:inline-block;padding:.2rem .6rem;border-radius:999px;font-size:.72rem;font-weight:600;background:var(--pl);color:var(--pi);}
.badge.urgent{background:oklch(0.72 0.14 35/.18);color:oklch(0.45 0.16 35);}
.badge.s-submitted{background:oklch(0.555 0.062 202/.18);color:var(--pa-deep);}
.badge.s-delivered{background:oklch(0.72 0.16 152/.2);color:oklch(0.4 0.12 152);}
.badge.s-cancelled{background:oklch(0.7 0.02 60/.3);color:var(--pi-soft);}
.timeline{list-style:none;padding:0;margin:0;}
.timeline li{padding:.6rem 0 .6rem 1.25rem;border-left:2px solid var(--pl);position:relative;}
.timeline li::before{content:"";position:absolute;left:-5px;top:1rem;width:8px;height:8px;border-radius:50%;background:var(--pa);}
.item-row{border:1px solid var(--pl);border-radius:10px;padding:1rem;margin-bottom:1rem;background:var(--pbg);}
.muted{color:var(--pi-soft);font-size:.88rem;}
.pro-main--wide{max-width:1240px;}

/* KPI cards */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.5rem;}
.kpi{background:var(--psurface);border:1px solid var(--pl);border-radius:14px;padding:1.1rem 1.25rem;}
.kpi b{display:block;font-family:"Cormorant Garamond",serif;font-size:2.1rem;line-height:1;color:var(--pi);}
.kpi span{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--pi-soft);}
.kpi.alert b{color:oklch(0.5 0.16 35);}
.kpi a{color:inherit;text-decoration:none;display:block;}

/* Calendar */
.cal-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:1rem;}
.cal-nav{display:flex;align-items:center;gap:.5rem;}
.cal-title{font-family:"Cormorant Garamond",serif;font-size:1.6rem;text-transform:capitalize;}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--pl);border:1px solid var(--pl);border-radius:12px;overflow:hidden;}
.cal-dow{background:var(--psurface);padding:.5rem;text-align:center;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--pi-soft);font-weight:600;}
.cal-cell{background:var(--psurface);min-width:0;min-height:118px;padding:.4rem;display:flex;flex-direction:column;gap:.3rem;}
.chip{max-width:100%;}
.cal-cell.out{background:var(--pbg);}
.cal-cell.today .cal-date{background:var(--pa);color:#fff;border-radius:999px;}
.cal-cell.drop{outline:2px dashed var(--pa);outline-offset:-3px;}
.cal-date{align-self:flex-start;font-size:.78rem;font-weight:600;color:var(--pi-soft);min-width:1.4rem;height:1.4rem;display:flex;align-items:center;justify-content:center;}
.chip{font-size:.72rem;padding:.25rem .45rem;border-radius:6px;background:var(--pa);color:#fff;cursor:grab;border:none;text-align:left;line-height:1.2;display:block;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.chip:active{cursor:grabbing;}
.chip.urgent{background:oklch(0.55 0.18 35);}
.chip.s-delivered{background:oklch(0.5 0.1 152);}
.chip.s-ready{background:oklch(0.5 0.09 150);}
.chip.s-quality_check{background:oklch(0.5 0.07 80);}
.chip.s-cancelled{background:var(--pi-soft);text-decoration:line-through;}
.tray{display:flex;gap:.5rem;flex-wrap:wrap;min-height:2.4rem;padding:.5rem;border:1px dashed var(--pl);border-radius:10px;}
.tray .chip{width:auto;max-width:230px;}

/* Drawer / quick actions */
.drawer-bg{position:fixed;inset:0;background:oklch(0.2 0.02 60/.4);display:none;z-index:50;}
.drawer-bg.open{display:block;}
.drawer{position:fixed;top:0;right:0;height:100%;width:min(420px,92vw);background:var(--psurface);box-shadow:-10px 0 40px oklch(.3 .02 70/.15);transform:translateX(100%);transition:transform .35s cubic-bezier(.22,1,.36,1);z-index:51;padding:1.5rem;overflow:auto;}
.drawer.open{transform:none;}
.drawer h2{margin-top:0;}
.btn--danger{background:oklch(0.55 0.18 30);border-color:oklch(0.55 0.18 30);color:#fff;}
.btn--danger:hover{background:oklch(0.48 0.18 30);color:#fff;}
.btn--block{width:100%;justify-content:center;}
.actions-stack{display:flex;flex-direction:column;gap:.6rem;margin-top:1rem;}

/* Modal with tabs */
.modal-bg{position:fixed;inset:0;background:oklch(0.2 0.02 60/.45);display:none;z-index:60;align-items:flex-start;justify-content:center;padding:4vh 1rem;overflow:auto;}
.modal-bg.open{display:flex;}
.modal{background:var(--psurface);border-radius:16px;width:min(820px,100%);box-shadow:0 30px 80px oklch(.3 .02 70/.25);padding:1.5rem 1.75rem;max-height:92vh;overflow:auto;animation:modalIn .28s cubic-bezier(.22,1,.36,1);}
@keyframes modalIn{from{opacity:0;transform:translateY(12px) scale(.99);}to{opacity:1;transform:none;}}
.modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap;margin-bottom:1rem;}
.modal-close{position:absolute;top:calc(4vh + .6rem);right:calc(50% - min(820px,92vw)/2 + .6rem);background:var(--psurface);border:1px solid var(--pl);border-radius:50%;width:34px;height:34px;cursor:pointer;font-size:1.1rem;line-height:1;z-index:61;}
.tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--pl);margin-bottom:1.25rem;flex-wrap:wrap;}
.tab{background:none;border:none;border-bottom:2px solid transparent;padding:.6rem .9rem;cursor:pointer;font:inherit;font-weight:600;font-size:.9rem;color:var(--pi-soft);}
.tab:hover{color:var(--pi);}
.tab.active{color:var(--pi);border-bottom-color:var(--pa);}
.tab-panel{display:none;}
.tab-panel.active{display:block;}
.modal-loading{padding:2rem;text-align:center;color:var(--pi-soft);}

@media(max-width:980px){.kpis{grid-template-columns:repeat(2,1fr);}.cal-cell{min-height:92px;}}
@media(max-width:680px){.grid2,.grid3{grid-template-columns:1fr;}.pro-main{margin:1.5rem auto;}.kpis{grid-template-columns:1fr 1fr;}.cal-grid{font-size:.8rem;}.cal-cell{min-height:70px;}}

/* ===== Admin sidebar shell ===== */
.admin-shell{display:flex;min-height:100vh;align-items:stretch;}
.sidebar{width:250px;flex-shrink:0;background:linear-gradient(180deg,oklch(0.255 0.02 222),oklch(0.21 0.022 226));color:oklch(0.92 0.01 200);position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:1.1rem .8rem;}
.side-brand{display:flex;align-items:center;gap:.6rem;color:#fff;text-decoration:none;font-family:"Cormorant Garamond",serif;font-size:1.3rem;font-weight:600;padding:.3rem .6rem 1rem;line-height:1.05;}
.side-brand img{background:#fff;border-radius:9px;padding:3px;}
.side-brand small{display:block;font-family:"Outfit",sans-serif;font-size:.56rem;letter-spacing:.2em;text-transform:uppercase;color:oklch(0.8 0.02 200/.55);margin-top:3px;}
.side-nav{display:flex;flex-direction:column;gap:.18rem;margin-top:.4rem;flex:1;}
.side-link{display:flex;align-items:center;gap:.8rem;padding:.72rem .85rem;border-radius:11px;color:oklch(0.87 0.01 200/.78);text-decoration:none;font-size:.92rem;font-weight:500;transition:background .15s ease,color .15s ease;}
.side-link svg{width:20px;height:20px;flex-shrink:0;opacity:.8;}
.side-link:hover{background:oklch(1 0 0/.07);color:#fff;}
.side-link:hover svg{opacity:1;}
.side-link.active{background:oklch(1 0 0/.11);color:#fff;}
.side-link.active svg{color:oklch(0.7 0.09 200);opacity:1;}
.side-foot{margin-top:auto;border-top:1px solid oklch(1 0 0/.1);padding-top:.5rem;}
.side-user{padding:.3rem .85rem;font-size:.78rem;color:oklch(0.8 0.02 200/.55);}
.side-toggle{display:none;background:none;border:none;color:#fff;font-size:1.3rem;cursor:pointer;}
.content{flex:1;min-width:0;background:var(--pbg);}
.admin-main{max-width:1200px;margin:0 auto;padding:2.25rem 2rem 3.5rem;}
.admin-main>h1:first-child,.admin-main>div:first-child h1{margin-top:0;}
.admin .pro-main{display:none;}

/* ===== Component polish (admin + dentist) ===== */
.pro-card{box-shadow:0 1px 2px oklch(.45 .02 70/.04),0 8px 24px oklch(.42 .02 70/.05);transition:box-shadow .2s ease;}
.kpi{transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;}
a.kpi:hover{transform:translateY(-3px);box-shadow:0 12px 28px oklch(.42 .02 70/.10);border-color:var(--line-strong);}
.kpi b{font-size:2.3rem;}
.kpi.alert{background:oklch(0.975 0.03 45);border-color:oklch(0.75 0.10 45/.5);}
.kpi.alert b{color:oklch(0.52 0.16 42);}
table.pro tbody tr{transition:background .12s ease;}
table.pro tbody tr:hover{background:oklch(0.972 0.008 80);}
table.pro tbody tr:last-child td{border-bottom:none;}
.admin-main h1{font-size:2.1rem;}
.admin-main h2{font-size:1.5rem;}
.badge.s-received{background:oklch(0.6 0.07 250/.18);color:oklch(0.42 0.09 250);}
.badge.s-in_production{background:oklch(0.7 0.12 60/.2);color:oklch(0.46 0.12 55);}
.badge.s-quality_check{background:oklch(0.72 0.1 80/.22);color:oklch(0.46 0.1 75);}
.badge.s-ready{background:oklch(0.72 0.16 150/.2);color:oklch(0.4 0.12 150);}

@media(max-width:860px){
  .admin-shell{flex-direction:column;}
  .sidebar{width:auto;height:auto;position:sticky;top:0;flex-direction:row;align-items:center;gap:.4rem;padding:.6rem .8rem;z-index:20;}
  .side-brand{padding:.2rem .4rem;font-size:1.05rem;}
  .side-brand small{display:none;}
  .side-nav{flex-direction:row;flex-wrap:nowrap;overflow-x:auto;margin:0;gap:.1rem;}
  .side-link{padding:.5rem .7rem;white-space:nowrap;}
  .side-foot{margin:0 0 0 auto;border:none;padding:0;}
  .side-user{display:none;}
  .side-link span{display:none;}
  .side-foot .side-link span{display:inline;}
  .admin-main{padding:1.4rem 1.1rem 2.5rem;}
}

/* ===== Calendar v2 ===== */
.seg{display:inline-flex;border:1px solid var(--pl);border-radius:999px;overflow:hidden;background:var(--psurface);}
.seg-btn{padding:.45rem 1rem;font-size:.85rem;font-weight:600;color:var(--pi-soft);text-decoration:none;}
.seg-btn.active{background:var(--pi);color:var(--pbg);}
.cal-celltop{display:flex;align-items:center;justify-content:space-between;}
.day-add{opacity:0;text-decoration:none;color:var(--pa-deep);font-weight:700;font-size:1rem;line-height:1;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:opacity .12s;}
.drop-day:hover .day-add{opacity:.55;}
.day-add:hover{background:var(--accent-tint);opacity:1 !important;}
.cal-cell.weekend{background:var(--psurface);}
.cal-cell.out.weekend{background:var(--pbg);}
.cal-dow:nth-child(6),.cal-dow:nth-child(7){color:var(--accent-deep);}
.chip b{font-variant-numeric:tabular-nums;font-weight:700;}
.cal-appt{display:block;font-size:.72rem;padding:.25rem .45rem;border-radius:6px;background:oklch(0.92 0.035 285);color:oklch(0.4 0.1 288);text-decoration:none;border:1px solid oklch(0.82 0.05 285);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cal-appt:hover{background:oklch(0.87 0.06 285);}
.cal-appt b{font-variant-numeric:tabular-nums;}
.week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--pl);border:1px solid var(--pl);border-radius:12px;overflow:hidden;}
.week-col{background:var(--psurface);min-width:0;min-height:440px;display:flex;flex-direction:column;}
.week-col.weekend{background:var(--psurface);}
.week-colhead{display:flex;align-items:center;gap:.4rem;padding:.5rem .6rem;border-bottom:1px solid var(--pl);font-size:.72rem;color:var(--pi-soft);text-transform:uppercase;letter-spacing:.05em;font-weight:600;}
.week-colhead b{margin-left:auto;font-family:"Cormorant Garamond",serif;font-size:1.15rem;color:var(--pi);}
.week-col.today .week-colhead b{background:var(--pa);color:#fff;border-radius:50%;width:1.7rem;height:1.7rem;display:inline-flex;align-items:center;justify-content:center;font-size:.95rem;}
.week-colbody{padding:.4rem;display:flex;flex-direction:column;gap:.35rem;flex:1;}
.week-col .chip,.week-col .cal-appt{white-space:normal;}
.week-colhead .day-add{margin-left:.2rem;}
@media(max-width:860px){
  .week-grid{grid-template-columns:1fr;}
  .week-col{min-height:auto;}
  .week-colhead b{margin-left:.5rem;}
}
