:root{--mist:#EDF2F2;--paper:#FCFDFD;--paper2:#F6F9F9;--ink:#13333B;--ink2:#41606A;--inkfaint:#7E999F;--hairline:#DCE6E7;--hairline2:#E7EEEF;--grid:#E6EEEF;--griddark:#CFDDE0;--sea:#0E7C86;--seadeep:#0A5F68;--seawash:#E2F0F1;--seaborder:#9CC6CB;--blue:#3D63C9;--bluewash:#E9EEF9;--blueborder:#B9C8EE;--amber:#9A6208;--amberwash:#F7ECD9;--amberborder:#DBB871;--coral:#BE5A38;--coraldeep:#A34A2C;--coralwash:#F8E8E1;--coralborder:#DFA489;--donewash:#E8EFEE;--donetext:#3B5A55;--sans:"Instrument Sans",-apple-system,"Segoe UI",Roboto,sans-serif;--serif:"Fraunces",Georgia,"Times New Roman",serif;--slot:28px;--slots:96;--axisw:58px;--headh:48px;--railw:64px;--panelw:344px;--shadow1:0 1px 2px rgba(19,51,59,.08),0 6px 24px rgba(19,51,59,.1);--shadow2:0 2px 6px rgba(19,51,59,.12),0 18px 48px rgba(19,51,59,.18)}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--sans);font-size:13px;color:var(--ink);background:var(--mist);-webkit-font-smoothing:antialiased;overflow:hidden}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--sea);outline-offset:2px;border-radius:4px}.hidden{display:none!important}.muted{color:var(--ink2)}.small{font-size:11.5px}.serif{font-family:var(--serif)}::selection{background:#bfe0e3}#rail{position:fixed;inset:0 auto 0 0;width:var(--railw);background:var(--mist);border-right:1px solid var(--hairline);display:flex;flex-direction:column;align-items:center;padding:10px 0;gap:4px;z-index:40}.rail-logo{width:34px;height:34px;border-radius:10px;background:var(--ink);color:#fff;display:grid;place-items:center;margin-bottom:10px;flex:none}.rail-logo svg{width:20px;height:20px}.rail-nav{display:flex;flex-direction:column;gap:2px;width:100%}.rnav{position:relative;width:100%;padding:9px 0 7px;display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--ink2);border-radius:10px;margin:0}.rnav svg{width:19px;height:19px}.rnav span{font-size:9.5px;font-weight:600;letter-spacing:.01em}.rnav:hover{background:#e2eaea}.rnav.on{background:var(--paper);color:var(--seadeep);box-shadow:0 1px 2px #13333b1a}.navbadge{position:absolute;top:4px;right:10px;min-width:16px;height:16px;padding:0 4px;border-radius:99px;background:var(--coral);color:#fff;font-size:9.5px;font-weight:700;display:grid;place-items:center;font-style:normal}.rail-foot{margin-top:auto;width:100%;padding:6px 8px 2px;position:relative}#roleBtn{display:flex;flex-direction:column;align-items:center;gap:5px;width:100%;padding:8px 0;border-radius:10px}#roleBtn:hover{background:#e2eaea}.avatar{width:30px;height:30px;border-radius:50%;background:var(--seawash);color:var(--seadeep);display:grid;place-items:center;font-size:11px;font-weight:700;border:1px solid var(--seaborder)}.rf-txt{display:flex;flex-direction:column;width:auto;max-width:48px}.rf-txt b{font-size:9.5px;font-weight:700;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rf-txt i{font-size:8.5px;color:var(--inkfaint);font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rpop{position:absolute;bottom:64px;left:6px;width:236px;background:var(--paper);border:1px solid var(--hairline);border-radius:12px;box-shadow:var(--shadow2);padding:6px;z-index:60}.rpop h5{font-size:10px;font-weight:600;color:var(--inkfaint);padding:6px 8px 4px}.rpop button{display:flex;width:100%;align-items:center;gap:9px;padding:7px 8px;border-radius:8px;text-align:left}.rpop button:hover{background:var(--paper2)}.rpop button.on{background:var(--seawash)}.rpop .avatar{width:26px;height:26px;font-size:10px;flex:none}.rpop .rp-name{font-weight:600;font-size:12px;line-height:1.2}.rpop .rp-role{font-size:10.5px;color:var(--ink2)}#practice{height:100vh;display:flex;flex-direction:column;padding-left:var(--railw)}#topbar{height:54px;flex:none;background:var(--paper);border-bottom:1px solid var(--hairline);display:flex;align-items:center;justify-content:space-between;padding:0 14px 0 16px;gap:12px}.tb-left,.tb-right{display:flex;align-items:center;gap:9px}.datelabel{font-size:14px;font-weight:650;letter-spacing:-.01em;margin:0 6px 0 2px}.datelabel .small{font-weight:500;color:var(--inkfaint);margin-left:6px}.dateinp{width:132px;padding:4px 6px;border:1px solid var(--hairline);border-radius:8px;background:var(--paper2);font-size:11.5px;color:var(--ink2)}.iconbtn{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;color:var(--ink2)}.iconbtn:hover{background:var(--paper2);color:var(--ink)}.iconbtn svg{width:16px;height:16px}.seg{display:flex;background:var(--paper2);border:1px solid var(--hairline);border-radius:9px;padding:2px}.seg button{padding:4px 11px;border-radius:7px;font-size:11.5px;font-weight:600;color:var(--ink2)}.seg button.on{background:var(--ink);color:#fff}.chipbtn{padding:5px 11px;border:1px solid var(--seaborder);border-radius:99px;font-size:11.5px;font-weight:600;color:var(--seadeep);background:var(--seawash)}.chipbtn.on{background:var(--sea);border-color:var(--sea);color:#fff}.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border-radius:9px;font-size:12.5px;font-weight:600;border:1px solid transparent}.btn svg{width:14px;height:14px}.btn.primary{background:var(--sea);color:#fff}.btn.primary:hover{background:var(--seadeep)}.btn.dark{background:var(--ink);color:#fff}.btn.dark:hover{background:#0c2a31}.btn.ghost{border-color:var(--hairline);background:var(--paper)}.btn.ghost:hover{background:var(--paper2)}.btn.danger{border-color:var(--coralborder);color:var(--coraldeep);background:var(--paper)}.btn.danger:hover{background:var(--coralwash)}.btn.sm{padding:4px 10px;font-size:11.5px;border-radius:8px}.btn.amber{background:var(--amber);color:#fff}.btn.amber:hover{background:#7e5008}.btn.wide{width:100%;justify-content:center}.btn:disabled{opacity:.45;cursor:not-allowed}#main{flex:1;display:flex;min-height:0}#calwrap{flex:1;min-width:0;overflow:auto;display:flex;align-items:flex-start;background:var(--paper);-webkit-user-select:none;user-select:none;position:relative}#axis{flex:none;width:var(--axisw);position:sticky;left:0;z-index:15;background:var(--paper);border-right:1px solid var(--hairline)}.axh{height:var(--headh);position:sticky;top:0;z-index:16;background:var(--paper);border-bottom:1px solid var(--hairline);display:grid;place-items:center}.axh span{font-size:9px;font-weight:650;color:var(--inkfaint);letter-spacing:.06em;text-transform:uppercase}#axisLabels{position:relative;height:calc(var(--slot) * var(--slots))}.axl{position:absolute;left:0;right:0;text-align:center;font-size:10px;color:var(--inkfaint);font-variant-numeric:tabular-nums;transform:translateY(-7px)}.axl:first-child{transform:translateY(1px)}#lanesgrid{flex:1;display:flex;min-width:0;position:relative}.lane{flex:1;min-width:176px;display:flex;flex-direction:column;border-right:1px solid var(--hairline);position:relative}.lane:last-child{border-right:0}.lane-head{height:var(--headh);flex:none;position:sticky;top:0;z-index:10;background:var(--paper);border-bottom:1px solid var(--hairline);display:flex;align-items:center;gap:8px;padding:0 10px 0 12px}.lane-head.dimmed{color:var(--inkfaint)}.lh-dot{width:22px;height:22px;border-radius:50%;background:var(--seawash);color:var(--seadeep);display:grid;place-items:center;font-size:9px;font-weight:700;flex:none;border:1px solid var(--seaborder)}.lane-head.room .lh-dot{background:#f1e8f7;color:#6b4e93;border-color:#d9c6ec}.lh-name{font-size:12.5px;font-weight:650;line-height:1.2;letter-spacing:-.005em}.lh-sub{font-size:10.5px;color:var(--inkfaint);font-weight:500}.lane-body{position:relative;height:calc(var(--slot) * var(--slots));flex:none;background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 111px,var(--griddark) 111px,var(--griddark) 112px),repeating-linear-gradient(to bottom,transparent 0,transparent 27px,var(--grid) 27px,var(--grid) 28px)}.lane-body.dim{filter:grayscale(1);opacity:.55}.blk{position:absolute;left:5px;right:6px;border-radius:8px;overflow:hidden;cursor:grab;font-size:11.5px;line-height:1.25;padding:4px 7px 0 11px;box-shadow:0 1px 2px #13333b1f}.blk:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:3px 0 0 3px}.blk .b-top{display:flex;align-items:baseline;justify-content:space-between;gap:6px;min-width:0}.b-name{font-weight:650;letter-spacing:-.005em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dur{font-size:9.5px;font-weight:600;opacity:.75;font-variant-numeric:tabular-nums;flex:none}.b-sub{font-size:10px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}.blk.t15{display:flex;align-items:center;padding-top:0;font-size:10.5px}.blk.t15 .b-top{align-items:center}.blk.t15 .b-sub,.blk.t15 .dur{display:none}.blk .b-flag{position:absolute;right:5px;top:5px;width:13px;height:13px;border-radius:50%;display:grid;place-items:center;flex:none}.b-flag svg{width:9px;height:9px}.blk .online{position:absolute;right:5px;bottom:3px;font-size:8.5px;font-weight:700;letter-spacing:.04em;opacity:.8;text-transform:uppercase}.blk.t15 .online{display:none}.blk.s-unconfirmed{background:var(--seawash);color:var(--seadeep);border:1px solid var(--seaborder);padding-left:9px}.blk.s-unconfirmed:before{background:var(--sea);opacity:.75}.blk.s-confirmed{background:var(--sea);color:#fff}.blk.s-confirmed:before{background:#073e44}.blk.s-confirmed .b-flag{background:#ffffff38}.blk.s-arrived{background:var(--blue);color:#fff}.blk.s-arrived:before{background:#16306b}.blk.s-inchair{background:var(--ink);color:#fff}.blk.s-inchair:before{background:#0a5f68}.blk.s-inchair:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:repeating-linear-gradient(-45deg,rgba(255,255,255,.13) 0 10px,transparent 10px 20px);animation:scan 1.6s linear infinite}@keyframes scan{to{background-position:28px 0}}.blk.s-done{background:var(--donewash);color:var(--donetext);box-shadow:none}.blk.s-done:before{background:#9db6b2}.blk.s-cancelled{background:transparent;border:1px dashed var(--hairline);color:var(--inkfaint);text-decoration:line-through;box-shadow:none}.blk.s-cancelled:before{background:var(--hairline)}.blk.s-cancelled .b-sub,.blk.s-cancelled .online{display:none}.blk.s-noshow{background:var(--coralwash);color:var(--coraldeep);border:1px solid var(--coralborder);padding-left:9px}.blk.s-noshow:before{background:var(--coral)}.blk.sel{box-shadow:0 0 0 2px var(--paper),0 0 0 4px var(--sea);z-index:5}.blk:hover{filter:brightness(1.03)}.blk .grip{position:absolute;left:0;right:0;bottom:0;height:7px;cursor:ns-resize}.grip:after{content:"";position:absolute;left:calc(50% - 9px);right:auto;bottom:2px;width:18px;height:2px;border-radius:2px;background:currentColor;opacity:.35;display:none}.blk:hover .grip:after{display:block}.blk.ghostmv{opacity:.92;z-index:20;box-shadow:var(--shadow2)}.blk.bad{box-shadow:0 0 0 2px var(--coral)!important}.create-ghost{position:absolute;left:5px;right:6px;border-radius:8px;background:#0e7c8629;border:1.5px dashed var(--sea);color:var(--seadeep);display:grid;place-items:center;font-size:10.5px;font-weight:650;z-index:20;pointer-events:none}.create-ghost.bad{background:#be5a3824;border-color:var(--coral);color:var(--coraldeep)}.nowline{position:absolute;left:0;right:0;height:0;border-top:2px solid var(--coral);z-index:12;pointer-events:none}.nowline:after{content:"";position:absolute;left:-1px;top:-4px;width:7px;height:7px;border-radius:50%;background:var(--coral)}.nowpill{position:absolute;right:4px;transform:translateY(-8px);background:var(--coral);color:#fff;font-size:9px;font-weight:700;padding:1px 5px;border-radius:5px;font-variant-numeric:tabular-nums;z-index:17}.lunchband{position:absolute;left:0;right:0;background:repeating-linear-gradient(-45deg,#eef3f3 0,#eef3f3 6px,#f7fafa 6px,#f7fafa 12px);display:grid;place-items:center;z-index:3;border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline)}.lunchband span{font-size:9.5px;font-weight:650;color:var(--inkfaint);background:var(--paper);padding:2px 9px;border-radius:99px;border:1px solid var(--hairline)}.closedband{position:absolute;left:0;right:0;background:repeating-linear-gradient(-45deg,#edf1f1 0,#edf1f1 6px,#f5f8f8 6px,#f5f8f8 12px);z-index:3;border-top:1px solid var(--hairline)}.closedband .cb-label{position:absolute;top:8px;left:50%;transform:translate(-50%);font-size:10px;font-weight:650;color:var(--inkfaint);background:var(--paper);padding:3px 10px;border-radius:99px;border:1px solid var(--hairline);white-space:nowrap}#panel{width:var(--panelw);flex:none;background:var(--paper);border-left:1px solid var(--hairline);display:flex;flex-direction:column;min-height:0}.p-tabs{display:flex;border-bottom:1px solid var(--hairline);flex:none;padding:0 8px;background:var(--paper)}.p-tabs button{padding:12px 10px 10px;font-size:12px;font-weight:600;color:var(--ink2);border-bottom:2px solid transparent;margin-bottom:-1px;display:inline-flex;gap:6px;align-items:center}.p-tabs button.on{color:var(--ink);border-color:var(--sea)}.reqbadge{min-width:16px;height:16px;padding:0 4px;border-radius:99px;background:var(--amberwash);color:var(--amber);font-size:9.5px;font-weight:700;display:grid;place-items:center;border:1px solid var(--amberborder)}#panelBody{flex:1;overflow:auto;padding:14px 14px 20px}.psec{padding:12px 0;border-bottom:1px solid var(--hairline2)}.psec:last-child{border-bottom:0}.psec h4{font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--inkfaint);margin-bottom:9px}.kpi-row{display:flex;gap:8px}.kpi{flex:1;background:var(--paper2);border:1px solid var(--hairline2);border-radius:10px;padding:9px 10px}.kpi b{display:block;font-size:19px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.kpi span{font-size:10px;color:var(--ink2);font-weight:600}.prow{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:5px 0;font-size:12px}.prow b{font-weight:650;font-variant-numeric:tabular-nums;text-align:right}.utilbar{height:6px;border-radius:4px;background:var(--hairline2);margin:6px 0 2px;overflow:hidden}.utilbar i{display:block;height:100%;border-radius:4px;background:var(--sea)}.legend{display:grid;grid-template-columns:1fr 1fr;gap:4px 10px;font-size:11px;color:var(--ink2)}.legend i{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:6px;vertical-align:-1px}.plist-item{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--hairline2);font-size:12px}.plist-item:last-child{border-bottom:0}.plist-item .pi-main{flex:1;min-width:0}.plist-item .pi-time{font-weight:650;font-variant-numeric:tabular-nums;font-size:11.5px;flex:none}.stchip{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:99px;font-size:10px;font-weight:650}.mini-actions{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}.d-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.d-name{font-size:16px;font-weight:700;letter-spacing:-.01em;line-height:1.2}.d-time{font-size:13px;font-weight:650;color:var(--seadeep);margin-top:2px;font-variant-numeric:tabular-nums}.d-rows{margin-top:8px}.d-row{display:flex;justify-content:space-between;gap:8px;padding:4px 0;font-size:12px;border-bottom:1px dashed var(--hairline2)}.d-row span{color:var(--ink2)}.d-row b{font-weight:600;text-align:right}.d-note{font-size:12px;color:var(--ink2);background:var(--paper2);border:1px solid var(--hairline2);border-radius:8px;padding:8px 10px;margin-top:8px;line-height:1.4}.stepper{display:flex;align-items:center;gap:0;margin:10px 0 2px}.step{flex:1;text-align:center;font-size:9.5px;font-weight:650;color:var(--inkfaint);position:relative}.step:before{content:"";display:block;width:100%;height:3px;border-radius:2px;background:var(--hairline2);margin-bottom:4px}.step.done:before{background:var(--sea)}.step.on{color:var(--seadeep)}.step.on:before{background:var(--sea)}.reqcard{border:1px solid var(--amberborder);background:var(--amberwash);border-radius:10px;padding:10px 11px;margin-bottom:9px}.reqcard.handled{border-color:var(--hairline);background:var(--paper2)}.rc-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.rc-name{font-weight:700;font-size:12.5px}.rc-note{font-size:11.5px;color:var(--ink2);margin-top:3px;line-height:1.4}.rc-meta{display:flex;gap:10px;margin-top:6px;font-size:10.5px;color:var(--inkfaint);font-weight:600;flex-wrap:wrap}.rc-actions{display:flex;gap:6px;margin-top:9px}.empty{font-size:12px;color:var(--inkfaint);padding:10px 0;line-height:1.5}#ptview{flex:1;min-width:0;background:var(--paper);overflow:auto;padding:18px 22px}.pt-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}.pt-head h2{font-size:19px;font-weight:700;letter-spacing:-.015em;margin-right:6px}.pt-head h2 span{font-weight:500;color:var(--inkfaint);font-size:13px;margin-left:6px}.search{display:flex;align-items:center;gap:7px;background:var(--paper2);border:1px solid var(--hairline);border-radius:9px;padding:7px 10px;width:260px;color:var(--ink2)}.search svg{width:14px;height:14px;flex:none}.search input{border:0;outline:0;background:none;width:100%;font-size:12.5px}.ptable{width:100%;border-collapse:collapse;font-size:12.5px}.ptable th{text-align:left;font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--inkfaint);padding:8px 10px;border-bottom:1px solid var(--hairline)}.ptable td{padding:10px;border-bottom:1px solid var(--hairline2);vertical-align:middle}.ptable tbody tr{cursor:pointer}.ptable tbody tr:hover{background:var(--paper2)}.pt-name{font-weight:650;display:flex;align-items:center;gap:9px}.pt-dot{width:24px;height:24px;border-radius:50%;background:var(--seawash);color:var(--seadeep);font-size:9px;font-weight:700;display:grid;place-items:center;flex:none;border:1px solid var(--seaborder)}.tagchip{display:inline-block;background:var(--paper2);border:1px solid var(--hairline);border-radius:6px;font-size:10px;font-weight:600;color:var(--ink2);padding:2px 7px;margin:1px 3px 1px 0}.bal-neg{color:var(--coraldeep);font-weight:700;font-variant-numeric:tabular-nums}.bal-zero{color:var(--inkfaint);font-weight:600;font-variant-numeric:tabular-nums}.today-chip{background:var(--seawash);color:var(--seadeep);border:1px solid var(--seaborder)}#drawer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;background:#13333b47}.dr-card{position:absolute;top:0;right:0;bottom:0;width:392px;background:var(--paper);box-shadow:var(--shadow2);padding:18px 20px;overflow:auto;animation:slidein .22s ease}@keyframes slidein{0%{transform:translate(24px);opacity:.4}}.dr-close{position:absolute;top:12px;right:12px}.dr-name{font-size:19px;font-weight:700;letter-spacing:-.015em;margin-top:2px}.dr-sub{font-size:12px;color:var(--ink2);margin-top:2px}.dr-tabs{margin-top:12px;flex-wrap:wrap}.dr-tabs .tp-tab{padding:5px 9px;font-size:11.5px;font-weight:600}#drBody{margin-top:2px}#overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#13333b5c;display:grid;place-items:center}.modal{width:600px;max-height:86vh;overflow:auto;background:var(--paper);border-radius:14px;box-shadow:var(--shadow2);padding:0;animation:pop .18s ease}@keyframes pop{0%{transform:translateY(8px) scale(.985);opacity:.5}}.m-head{padding:16px 20px 12px;border-bottom:1px solid var(--hairline2)}.m-kicker{font-size:11px;font-weight:650;color:var(--inkfaint)}.m-head h3{font-size:17px;font-weight:700;letter-spacing:-.01em;margin-top:2px}.m-body{padding:14px 20px}.frow{display:flex;gap:12px;margin-bottom:11px}.fcol{flex:1;min-width:0}.flabel{display:block;font-size:10.5px;font-weight:650;color:var(--ink2);margin-bottom:5px}.fctl{width:100%;border:1px solid var(--hairline);border-radius:9px;background:var(--paper2);padding:8px 10px;font-size:12.5px;outline:none}.fctl:focus{border-color:var(--sea);background:var(--paper)}textarea.fctl{resize:vertical;min-height:52px;line-height:1.45}.fcombo{position:relative}.fcombo-list{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--paper);border:1px solid var(--hairline);border-radius:10px;box-shadow:var(--shadow1);z-index:10;overflow:hidden;max-height:180px;overflow-y:auto}.fcombo-list .citem{display:block;width:100%;text-align:left;padding:8px 11px;font-size:12.5px}.fcombo-list .citem:hover{background:var(--seawash)}.fcombo-list .cadd{color:var(--seadeep);font-weight:650;border-top:1px solid var(--hairline2)}.m-alert{border:1px solid var(--coralborder);background:var(--coralwash);border-radius:10px;padding:10px 12px;font-size:12px;color:var(--coraldeep);margin:2px 0 8px;line-height:1.5}.m-alert b{font-weight:700}.m-alert.ok{border-color:var(--seaborder);background:var(--seawash);color:var(--seadeep)}.m-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 20px 16px}.m-foot .right{display:flex;gap:8px}.newpt{background:var(--paper2);border:1px dashed var(--hairline);border-radius:10px;padding:10px 12px;margin-bottom:11px}.newpt .frow{margin-bottom:9px}.newpt .flabel{margin-bottom:4px}#toasts{position:fixed;right:18px;bottom:18px;z-index:120;display:flex;flex-direction:column;gap:8px}.toast{display:flex;align-items:center;gap:9px;background:var(--ink);color:#fff;border-radius:10px;padding:10px 14px;font-size:12.5px;font-weight:550;box-shadow:var(--shadow2);animation:rise .22s ease;max-width:360px;line-height:1.35}.toast svg{width:15px;height:15px;flex:none;color:#8fd4da}.toast.warn{background:#7e3a22}@keyframes rise{0%{transform:translateY(10px);opacity:0}}body.route-portal{overflow:auto;background:var(--mist)}body.route-portal #rail,body.route-portal #practice{display:none}#portal{min-height:100vh;display:none}body.route-portal #portal{display:block}.pnav{position:sticky;top:0;z-index:30;background:#fcfdfdeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--hairline)}.pnav-inner{max-width:960px;margin:0 auto;display:flex;align-items:center;gap:18px;padding:13px 22px}.pbrand{display:flex;align-items:center;gap:10px}.pbrand .pb-logo{width:32px;height:32px;border-radius:10px;background:var(--ink);color:#fff;display:grid;place-items:center;flex:none}.pb-logo svg{width:19px;height:19px}.pbrand b{font-family:var(--serif);font-size:17px;font-weight:600;letter-spacing:-.01em;display:block;line-height:1.05}.pbrand span{font-size:10.5px;color:var(--inkfaint);font-weight:550}.p-tabs2{display:flex;gap:2px;background:var(--paper2);border:1px solid var(--hairline);border-radius:10px;padding:3px;margin:0 auto}.p-tabs2 button{padding:6px 14px;border-radius:8px;font-size:12.5px;font-weight:600;color:var(--ink2)}.p-tabs2 button.on{background:var(--ink);color:#fff}.pnav-right{display:flex;align-items:center;gap:10px}.p-user{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:650}#portalBody{max-width:960px;margin:0 auto;padding:8px 22px 80px}.p-hero{padding:34px 0 6px;animation:fadeup .4s ease}@keyframes fadeup{0%{opacity:0;transform:translateY(10px)}to{opacity:1}}.p-hero .hi{font-size:12.5px;font-weight:650;color:var(--seadeep)}.p-hero h1{font-family:var(--serif);font-size:40px;font-weight:600;letter-spacing:-.02em;line-height:1.08;margin:6px 0 8px;max-width:640px}.p-hero p{font-size:14.5px;color:var(--ink2);max-width:560px;line-height:1.55}.p-openline{display:flex;gap:14px;margin-top:12px;font-size:12px;color:var(--ink2);flex-wrap:wrap}.p-openline b{font-weight:650}.stepwrap{margin-top:26px}.steptitle{display:flex;align-items:baseline;gap:10px;margin-bottom:14px}.steptitle h2{font-family:var(--serif);font-size:23px;font-weight:600;letter-spacing:-.01em}.steptitle span{font-size:12.5px;color:var(--inkfaint);font-weight:550}.svc-chips{display:flex;flex-wrap:wrap;gap:9px}.svc{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:11px 16px 10px;border:1px solid var(--hairline);border-radius:12px;background:var(--paper);min-width:150px;text-align:left}.svc:hover{border-color:var(--seaborder);background:var(--seawash)}.svc.on{background:var(--ink);border-color:var(--ink);color:#fff}.svc b{font-size:13px;font-weight:650;letter-spacing:-.005em}.svc span{font-size:10.5px;opacity:.72;font-weight:550;font-variant-numeric:tabular-nums}.svc.on:hover{background:var(--ink)}.daystrip{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 8px;scrollbar-width:thin}.dcell{flex:none;width:76px;border:1px solid var(--hairline);border-radius:11px;background:var(--paper);padding:9px 6px 8px;display:flex;flex-direction:column;align-items:center;gap:1px}.dcell:hover{border-color:var(--seaborder)}.dcell.on{background:var(--sea);border-color:var(--sea);color:#fff}.dcell.closed{opacity:.45;cursor:not-allowed}.d-dow{font-size:10px;font-weight:650;letter-spacing:.05em;color:var(--ink2);text-transform:uppercase}.dcell.on .d-dow{color:#cfedef}.d-num{font-size:17px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.2}.d-cnt{font-size:9.5px;font-weight:600;color:var(--inkfaint)}.dcell.on .d-cnt{color:#cfedef}.dcell .d-today{font-size:9px;font-weight:700;color:var(--sea)}.dcell.on .d-today{color:#fff}.sgroup{margin:16px 0 6px}.sgroup h4{font-size:11px;font-weight:700;color:var(--inkfaint);letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px}.slotgrid{display:flex;flex-wrap:wrap;gap:8px}.slot{width:86px;padding:8px 0 7px;border:1px solid var(--hairline);border-radius:9px;background:var(--paper);font-size:12.5px;font-weight:650;font-variant-numeric:tabular-nums;color:var(--ink)}.slot:hover{border-color:var(--seaborder);background:var(--seawash)}.slot.on{background:var(--seadeep);border-color:var(--seadeep);color:#fff}.slotgrid-full{font-size:12.5px;color:var(--inkfaint);padding:10px 0}.confirm-card{border:1px solid var(--hairline);border-radius:14px;background:var(--paper);padding:18px 20px;margin-top:8px;box-shadow:0 1px 2px #13333b0d}.cc-row{display:flex;justify-content:space-between;gap:14px;padding:7px 0;border-bottom:1px dashed var(--hairline2);font-size:13px}.cc-row:last-child{border-bottom:0}.cc-row span{color:var(--ink2)}.cc-row b{font-weight:650;text-align:right}.switch{display:flex;align-items:center;gap:9px;margin-top:12px;font-size:12.5px;color:var(--ink2);cursor:pointer}.switch input{width:34px;height:20px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--hairline);border-radius:99px;position:relative;transition:background .15s;outline-offset:3px;cursor:pointer;flex:none}.switch input:checked{background:var(--sea)}.switch input:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:left .15s;box-shadow:0 1px 2px #0003}.switch input:checked:after{left:16px}.done-hero{text-align:center;padding:40px 0 10px;animation:fadeup .4s ease}.bigcheck{width:56px;height:56px;border-radius:50%;background:var(--seawash);border:1.5px solid var(--seaborder);color:var(--seadeep);display:grid;place-items:center;margin:0 auto 16px}.bigcheck svg{width:26px;height:26px}.done-hero h1{font-family:var(--serif);font-size:34px;font-weight:600;letter-spacing:-.02em}.done-hero p{color:var(--ink2);margin:8px auto 4px;max-width:440px;line-height:1.55}.codepill{display:inline-block;margin:12px auto 4px;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;background:var(--paper);border:1px dashed var(--seaborder);color:var(--seadeep);border-radius:10px;padding:8px 18px}.done-actions{display:flex;gap:10px;justify-content:center;margin-top:16px}.nextlist{max-width:460px;margin:22px auto 0;text-align:left}.nextlist li{margin:0 0 8px 18px;color:var(--ink2);font-size:13px;line-height:1.5}.aptcard{border:1px solid var(--hairline);border-radius:13px;background:var(--paper);padding:14px 16px;display:flex;align-items:center;gap:14px;margin-bottom:10px}.ac-datecol{flex:none;width:58px;text-align:center;border-right:1px solid var(--hairline2);padding-right:12px}.ac-datecol b{display:block;font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.1}.ac-datecol span{font-size:10px;font-weight:650;color:var(--inkfaint);text-transform:uppercase;letter-spacing:.05em}.ac-main{flex:1;min-width:0}.ac-main h4{font-size:14px;font-weight:700;letter-spacing:-.005em}.ac-main p{font-size:12px;color:var(--ink2);margin-top:3px;line-height:1.45}.ac-side{text-align:right;flex:none;display:flex;flex-direction:column;gap:8px;align-items:flex-end}.ac-code{font-size:10px;font-weight:700;color:var(--inkfaint);letter-spacing:.05em}.ac-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.askgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.help-hint{border:1px solid var(--seaborder);background:var(--seawash);border-radius:12px;padding:14px 16px;margin-top:22px;display:flex;gap:12px;align-items:center;max-width:520px}.help-hint svg{width:18px;height:18px;color:var(--seadeep);flex:none}.help-hint p{font-size:12.5px;color:var(--seadeep);line-height:1.45}.help-hint b{font-weight:700}.icslink{color:var(--seadeep);font-weight:650;text-decoration:underline;text-underline-offset:2px}.backlink{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:650;color:var(--seadeep);padding:6px 10px 6px 6px;border-radius:8px}.backlink:hover{background:var(--seawash)}.stchip.st-un{background:var(--seawash);color:var(--seadeep);border:1px solid var(--seaborder)}.stchip.st-con{background:var(--sea);color:#fff}.stchip.st-arr{background:var(--blue);color:#fff}.stchip.st-ch{background:var(--ink);color:#fff}.stchip.st-done{background:var(--donewash);color:var(--donetext)}.stchip.st-ns{background:var(--coralwash);color:var(--coraldeep);border:1px solid var(--coralborder)}.stchip.st-ca{background:var(--paper);color:var(--inkfaint);border:1px dashed var(--hairline)}.lg-st-un{background:var(--seawash);border:1px solid var(--seaborder)}.lg-st-con{background:var(--sea)}.lg-st-arr{background:var(--blue)}.lg-st-ch{background:var(--ink)}.lg-st-done{background:var(--donewash);border:1px solid var(--hairline)}.lg-st-ns{background:var(--coralwash);border:1px solid var(--coralborder)}.lg-st-ca{background:transparent;border:1px dashed var(--hairline)}.blk.locked{cursor:default}#main.tablemode #panel{display:none}.m-alert svg{width:13px;height:13px;vertical-align:-2px}.d-row b svg{width:12px;height:12px;vertical-align:-2px}.legend .small svg{width:11px;height:11px;vertical-align:-2px}.fcombo-list{max-height:190px;overflow-y:auto;overflow-x:hidden}.citem b{font-weight:600}body.route-login #rail,body.route-login #practice,body.route-login #portal,body.route-picker #rail,body.route-picker #practice,body.route-picker #portal{display:none}#login{min-height:100vh;display:none}body.route-login #login,body.route-picker #login{display:grid;place-items:center;padding:24px}.lg-frame{display:grid;grid-template-columns:368px 448px;width:min(864px,100%);background:var(--paper);border:1px solid var(--hairline);border-radius:16px;box-shadow:var(--shadow1);overflow:hidden}.lg-brand{background:var(--ink);color:#e7f0f1;padding:32px 30px 26px;display:flex;flex-direction:column;position:relative;overflow:hidden}.lg-brand .pb-logo{background:var(--sea);width:38px;height:38px}.lg-word{font-family:var(--serif);font-size:25px;font-weight:600;letter-spacing:-.015em;margin-top:16px;position:relative;z-index:1}.lg-brand p{font-size:12.5px;color:#a9c3c6;line-height:1.6;margin-top:9px;max-width:300px;position:relative;z-index:1}.lg-toothwm{position:absolute;right:-64px;bottom:-52px;width:270px;height:270px;opacity:.055;transform:rotate(-10deg);z-index:0}.lg-toothwm svg{width:100%;height:100%}.lg-marks{margin-top:auto;position:relative;z-index:1}.lg-markrow{display:flex;align-items:baseline;gap:10px;font-size:11px;color:#9fbbbe;padding:8px 0 7px;border-top:1px solid rgba(255,255,255,.1)}.lg-markrow span{flex:none;width:60px;font-weight:650;color:#7fa9ad}.lg-markrow b{font-weight:600}.lg-formwrap{padding:30px 34px 24px;display:flex;flex-direction:column;min-height:560px}.lg-formwrap h1{font-family:var(--serif);font-size:26px;font-weight:600;letter-spacing:-.02em;line-height:1.1}.lg-lead{font-size:12.5px;color:var(--ink2);margin:8px 0 18px;line-height:1.55}.lg-field{margin-bottom:12px}.lg-doors{display:flex;flex-direction:column;gap:8px}.lg-door{display:block;width:100%;text-align:left;border:1px solid var(--hairline);border-radius:11px;background:var(--paper);padding:11px 13px}.lg-door b{font-size:13px;font-weight:650;display:block}.lg-door span{font-size:11px;color:var(--ink2);display:block;margin-top:2px;line-height:1.45}.lg-door:hover{border-color:var(--seaborder);background:var(--seawash)}.lg-aside{margin-top:auto;padding-top:18px;border-top:1px solid var(--hairline2)}.lg-aside h4{font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--inkfaint);margin-bottom:9px}.lg-back{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:650;color:var(--seadeep);margin-bottom:12px;padding:4px 9px 4px 5px;border-radius:7px;margin-left:-5px}.lg-back:hover{background:var(--seawash)}.lg-back svg{width:13px;height:13px}.otp-in{font-size:21px!important;font-weight:650!important;letter-spacing:.45em;text-align:center;padding:11px 0 9px!important}.lg-hintpill{display:inline-flex;align-items:center;gap:7px;margin-top:10px;font-size:11.5px;font-weight:650;color:var(--seadeep);background:var(--seawash);border:1px solid var(--seaborder);border-radius:99px;padding:5px 12px}.lg-hintpill svg{width:13px;height:13px}.lg-resend{font-size:11.5px;color:var(--inkfaint);margin-top:10px;text-align:center}.lg-resend button{color:var(--seadeep);font-weight:650;text-decoration:underline;text-underline-offset:2px}.lg-resend button:disabled{color:var(--inkfaint);text-decoration:none;cursor:default}.phonepre{display:flex;align-items:stretch;border:1px solid var(--hairline);border-radius:9px;background:var(--paper2);overflow:hidden}.phonepre span{padding:8px 10px;font-size:12.5px;font-weight:650;color:var(--ink2);border-right:1px solid var(--hairline);background:var(--paper)}.phonepre input{border:0;background:none;padding:8px 10px;font-size:13px;width:100%;outline:none;font-variant-numeric:tabular-nums;min-width:0}.lg-demo{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:12px;font-size:11px;color:var(--inkfaint)}.lg-demo button{border:1px solid var(--hairline);border-radius:99px;padding:2px 9px;font-size:10.5px;font-weight:650;color:var(--ink2);background:var(--paper2)}.lg-demo button:hover{border-color:var(--seaborder);color:var(--seadeep)}.lg-demo button svg{width:12px;height:12px;vertical-align:-2px;margin-right:2px}.staffchip{display:inline-flex;align-items:center;font-size:9px;font-weight:700;letter-spacing:.07em;color:var(--seadeep);background:var(--seawash);border:1px solid var(--seaborder);border-radius:5px;padding:1px 5px;text-transform:uppercase}.guestchip{font-size:12px;font-weight:650;color:var(--ink2);border:1px dashed var(--hairline);border-radius:99px;padding:3px 10px}@media (max-width:880px){.lg-frame{grid-template-columns:1fr}.lg-brand{display:none}}.modal.tp{width:780px}.odonto{display:flex;flex-direction:column;gap:4px;align-items:center;margin:6px 0 2px}.od-row{display:flex;gap:3px}.od-gap{width:16px;flex:none}.od-cell{width:29px;height:31px;border:1px solid var(--hairline);border-radius:7px;background:var(--paper);display:grid;place-items:center;font-size:9px;font-weight:650;color:var(--ink2);cursor:pointer;font-variant-numeric:tabular-nums;position:relative;padding:0}.od-cell:hover{border-color:var(--seaborder)}.od-cell.sel{background:var(--sea);border-color:var(--sea);color:#fff}.od-cell.used:after{content:"";position:absolute;bottom:3px;left:50%;transform:translate(-50%);width:5px;height:5px;border-radius:50%;background:var(--amber)}.od-cell.used.sel:after{background:#fff}.tp-hint{font-size:11px;color:var(--inkfaint);text-align:center;margin:4px 0 2px}.tp-hint b{color:var(--seadeep)}.tp-searchrow{margin:12px 0 8px}.syschips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.systag{display:inline-flex;align-items:center;font-size:9px;font-weight:700;letter-spacing:.03em;border-radius:5px;padding:1px 6px;border:1px solid;white-space:nowrap}.systag.t-cdt{background:var(--seawash);color:var(--seadeep);border-color:var(--seaborder)}.systag.t-ichi{background:#f1e8f7;color:#6b4e93;border-color:#d9c6ec}.systag.t-icd10{background:var(--bluewash);color:#2f4fa8;border-color:var(--blueborder)}.systag.t-icd11{background:#e7f1e9;color:#3a6b44;border-color:#bcd9c0}.systag.t-snomed{background:var(--amberwash);color:var(--amber);border-color:var(--amberborder)}.th-note{font-size:9px;font-weight:600;color:var(--inkfaint)}.tp-hits{border:1px solid var(--hairline2);border-radius:10px;overflow:auto;margin-bottom:6px;max-height:216px}.tp-hit{display:flex;align-items:center;gap:10px;padding:8px 11px;border-bottom:1px solid var(--hairline2);font-size:12px}.tp-hit:last-child{border-bottom:0}.tp-hit .th-code{flex:none;min-width:56px}.tp-hit .th-code b{font-variant-numeric:tabular-nums}.tp-hit .th-main{flex:1;min-width:0;line-height:1.35}.tp-hit .th-xrefs{display:flex;gap:4px;flex-wrap:wrap;margin-top:3px;align-items:center}.tp-hit .th-fee{font-weight:650;flex:none;font-variant-numeric:tabular-nums}.tp-empty{padding:10px 12px;font-size:11.5px;color:var(--inkfaint);line-height:1.45}.tp-sec{margin-top:13px}.tp-sec h4{font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--inkfaint);margin-bottom:7px}.tp-find{display:flex;flex-wrap:wrap;gap:6px}.findchip{display:inline-flex;align-items:center;gap:6px;background:var(--paper2);border:1px solid var(--hairline);border-radius:99px;padding:4px 4px 4px 10px;font-size:11.5px;line-height:1.2}.findchip b{font-weight:700;font-variant-numeric:tabular-nums}.findchip .fx{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;color:var(--inkfaint);padding:0}.findchip .fx svg{width:9px;height:9px}.findchip .fx:hover{background:var(--coralwash);color:var(--coraldeep)}.tp-table{border:1px solid var(--hairline2);border-radius:10px;overflow:hidden}.tp-row{display:flex;align-items:center;gap:8px;padding:7px 11px;border-bottom:1px solid var(--hairline2);font-size:12px}.tp-row:last-child{border-bottom:0}.tp-row.tr-head{background:var(--paper2);font-size:9.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--inkfaint)}.tp-r-cdt{width:56px;flex:none;font-variant-numeric:tabular-nums}.tp-r-lab{flex:1;min-width:0;line-height:1.3}.tp-r-tooth{width:44px;flex:none;text-align:center}.tp-r-tooth b{border:1px solid var(--hairline);border-radius:6px;padding:2px 7px;font-size:10.5px;font-variant-numeric:tabular-nums}.tp-r-qty{width:66px;flex:none;display:flex;align-items:center;gap:5px;justify-content:center}.qbtn{width:18px;height:18px;border:1px solid var(--hairline);border-radius:5px;display:grid;place-items:center;font-size:11px;font-weight:700;color:var(--ink2);padding:0}.qbtn:hover{background:var(--paper2)}.tp-r-fee{width:86px;flex:none;text-align:right;font-weight:650;font-variant-numeric:tabular-nums}.tp-r-x{width:20px;flex:none;display:grid;place-items:center;color:var(--inkfaint);padding:0}.tp-r-x svg{width:11px;height:11px}.tp-r-x:hover{color:var(--coraldeep)}.tp-total{display:flex;justify-content:space-between;align-items:baseline;padding:9px 11px;background:var(--seawash);font-size:12px}.tp-total b{font-size:16px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--seadeep)}.tp-foot-note{font-size:10.5px;color:var(--inkfaint);margin-top:9px;line-height:1.5}.modal.tp{width:1120px;max-width:94vw}.od-band{width:100%;border-bottom:1px solid var(--hairline2);padding-bottom:14px;margin-bottom:4px}.tp-tabs{display:flex;gap:6px;margin-top:10px}.tp-tab{padding:7px 14px;border-radius:9px;font-weight:650;font-size:12.5px;color:var(--ink2);border:1px solid var(--hairline)}.tp-tab.on{background:var(--ink);color:#fff;border-color:var(--ink)}.tp-cols{display:grid;grid-template-columns:395px 1fr;gap:0 18px;align-items:start}.tfields .frow{margin-bottom:9px}.odonto{margin:8px 0 4px}.od-cell.od-planned{border-color:var(--amberborder);color:var(--amber);background:var(--amberwash)}.od-cell.od-active{border-color:var(--sea);box-shadow:0 0 0 2px var(--seawash);background:var(--seawash);color:var(--seadeep)}.od-cell.od-done{background:var(--sea);border-color:var(--sea);color:#fff}.od-cell.sel{background:var(--ink);border-color:var(--ink);color:#fff}.tp-prirow{display:flex;gap:8px;align-items:center;margin-top:4px}.tp-hits{max-height:180px}.ti{display:flex;align-items:flex-start;gap:9px;padding:9px 8px 9px 10px;border-bottom:1px solid var(--hairline2);min-height:48px}.ti:last-child{border-bottom:0}.ti-main{flex:1;min-width:0;line-height:1.35}.ti-name{font-weight:650}.ti.gone .ti-name{text-decoration:line-through;opacity:.6}.ti.defer{opacity:.85}.ti-sub{display:flex;gap:5px;align-items:center;margin-top:3px;flex-wrap:wrap}.ti-sub .th-note{font-size:9px}.qwrap{display:inline-flex;align-items:center;gap:4px}.qwrap b{font-variant-numeric:tabular-nums;min-width:12px;text-align:center}.ti-fee{display:flex;flex-direction:column;align-items:flex-end;gap:3px;min-width:92px;flex:none}.ti-fee input{width:92px;text-align:right;font-weight:650;border:1px solid var(--hairline);border-radius:7px;padding:5px 7px;background:var(--paper2);font-variant-numeric:tabular-nums;font-size:12.5px}.ti-fee input:focus{border-color:var(--sea);background:var(--paper)}.ti-fee .ti-total{font-size:10.5px;color:var(--inkfaint);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.ti-ctl{display:flex;flex-direction:column;gap:5px;align-items:stretch;flex:none;width:96px}.ti-ctl .btn{justify-content:center}.stchip.tp-proposed{background:var(--paper);border:1px solid var(--hairline);color:var(--ink2)}.stchip.tp-consented{background:var(--bluewash);border:1px solid var(--blueborder);color:#2f4fa8}.stchip.tp-inprogress{background:var(--sea);color:#fff}.stchip.tp-completed{background:var(--donewash);color:var(--donetext)}.stchip.tp-deferred{background:var(--amberwash);border:1px solid var(--amberborder);color:var(--amber)}.stchip.tp-abandoned{background:var(--coralwash);border:1px solid var(--coralborder);color:var(--coraldeep);text-decoration:line-through}.phasehead{display:flex;justify-content:space-between;align-items:baseline;background:var(--paper2);padding:7px 10px;border-bottom:1px solid var(--hairline2);font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink2)}.phasehead b{font-variant-numeric:tabular-nums;color:var(--seadeep);font-size:12px;letter-spacing:0}.tp-items .ti{padding-right:10px}.adu-row{display:flex;gap:8px;align-items:flex-end;background:var(--paper2);border:1px dashed var(--hairline);border-radius:10px;padding:9px 10px;margin-top:8px;flex-wrap:wrap}.adu-row .fctl{padding:6px 8px;font-size:12px}.qphase{border:1px solid var(--hairline);border-radius:12px;margin-bottom:10px;overflow:hidden}.qphase-h{display:flex;justify-content:space-between;padding:9px 12px;background:var(--paper2);font-size:12px;color:var(--ink2)}.qphase-h b{font-size:12.5px;color:var(--ink)}.qphase-h .qh-amt{font-weight:700;font-variant-numeric:tabular-nums;color:var(--seadeep)}.qrow{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:8px 12px;border-bottom:1px solid var(--hairline2);font-size:12.5px}.qrow .q-main{min-width:0;flex:1}.qrow .q-meta{color:var(--inkfaint);font-size:10.5px;margin-top:2px}.qrow .q-fee{font-weight:650;white-space:nowrap;font-variant-numeric:tabular-nums;display:flex;flex-direction:column;align-items:flex-end;gap:5px;flex:none}.qrow.deferred,.qrow.done{opacity:.68}.qrow .q-ctl{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.qph-note{padding:8px 12px;font-size:11px;color:var(--ink2);border-top:1px solid var(--hairline2)}.qbig{display:flex;justify-content:space-between;align-items:baseline;padding:11px 14px;background:var(--ink);color:#fff;border-radius:0 0 12px 12px;margin-bottom:10px}.qbig span{font-size:12px;color:#c4d7d9}.qbig b{font-size:18px;font-variant-numeric:tabular-nums}.qaccept{font-size:11.5px;color:var(--ink2);margin:2px 2px 12px;line-height:1.5}.qdone-line{font-size:11.5px;color:var(--inkfaint);margin-bottom:12px}#plansview{flex:1;min-width:0;display:flex;background:var(--paper);min-height:0}.pl-left{width:304px;flex:none;border-right:1px solid var(--hairline);overflow:auto;padding:16px 14px 30px}.pl-right{flex:1;min-width:0;overflow:auto;padding:18px 22px 48px}.pl-left h4{font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--inkfaint);margin:12px 0 8px}.pl-item{display:flex;align-items:center;gap:8px;border:1px solid var(--hairline);border-radius:11px;padding:9px 11px;margin-bottom:8px;cursor:pointer;background:var(--paper)}.pl-item:hover{border-color:var(--seaborder)}.pl-item.on{border-color:var(--sea);background:var(--seawash)}.pl-item .ti-sub{margin-top:5px}.pl-item .pl-amt{margin-left:auto;font-weight:700;font-variant-numeric:tabular-nums;flex:none}.dp-head{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap}.dp-title{font-family:var(--serif);font-size:22px;font-weight:600;letter-spacing:-.01em;line-height:1.15}.dp-meta{font-size:12px;color:var(--ink2);margin-top:3px}.dp-switch{margin-left:auto;display:flex;gap:6px}.hist{border-left:2px solid var(--hairline);margin:10px 0 0 6px;padding-left:16px}.hist li{margin:0 0 10px;font-size:12px;line-height:1.45;list-style:none;position:relative;color:var(--ink2)}.hist li b{color:var(--ink)}.hist li:before{content:"";position:absolute;left:-21px;top:6px;width:8px;height:8px;border-radius:50%;background:var(--seaborder)}.hist li:first-child:before{background:var(--sea)}.recrow{display:flex;align-items:center;gap:8px;padding:7px 0;font-size:12px;border-bottom:1px dashed var(--hairline2);flex-wrap:wrap}.recrow:last-child{border-bottom:0}.recrow .rr-note{font-size:11px;color:var(--inkfaint);flex:1;min-width:120px}.buildfoot{font-size:10px;font-weight:600;color:var(--inkfaint);letter-spacing:.02em;text-align:center;padding-top:12px}.pnav-right .buildfoot{padding-top:0;margin-left:8px;white-space:nowrap}#insview,#repview,#notifview{flex:1;min-width:0;background:var(--paper);overflow:auto;padding:18px 22px}.od-caries{background:var(--coralwash);border-color:var(--coralborder);color:var(--coraldeep)}.od-composite{background:var(--bluewash);border-color:var(--blueborder);color:#2f4fa8}.od-crown{background:var(--seawash);border-color:var(--seaborder);color:var(--seadeep)}.od-rct{background:var(--seadeep);border-color:var(--seadeep);color:#fff}.od-missing{background:var(--mist);border-style:dashed;border-color:var(--inkfaint);color:var(--inkfaint)}.od-implant{background:var(--ink);border-color:var(--ink);color:#fff}.od-bridge{border-style:dashed;border-color:var(--blueborder);color:#2f4fa8}.od-watch{background:var(--amberwash);border-color:var(--amberborder);color:var(--amber)}.od-cell.chart-sel{box-shadow:0 0 0 2px var(--ink)}.od-swatch{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:6px;vertical-align:-1px;border:1px solid var(--hairline)}.condchips{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}.ps-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;margin:8px 0}.ps-cell{border:1px solid var(--hairline);border-radius:8px;padding:5px 2px 6px;text-align:center;background:var(--paper2)}.ps-cell span{display:block;font-size:8px;font-weight:700;letter-spacing:.06em;color:var(--inkfaint)}.ps-cell b{display:block;font-size:14px;font-variant-numeric:tabular-nums;margin:1px 0 3px}.ps-cell.deep{border-color:var(--coralborder);background:var(--coralwash)}.ps-cell.deep b{color:var(--coraldeep)}.ps-cell.bleed{background:var(--coralwash)}.ps-btns{display:flex;justify-content:center;gap:2px}.pbl{display:block;margin:4px auto 0;width:14px;height:14px;border-radius:50%;border:1px solid var(--coralborder);background:var(--paper);color:var(--coraldeep);font-size:8px;font-weight:800;line-height:1;padding:0}.pbl.on{background:var(--coral);border-color:var(--coral);color:#fff}.deepv{color:var(--coraldeep);font-variant-numeric:tabular-nums}.ps-mob{display:flex;align-items:center;gap:6px;margin:2px 0 4px;font-size:11.5px;color:var(--ink2)}.rxcard{border:1px solid var(--hairline);border-radius:10px;padding:9px 11px;margin-bottom:8px}.rx-h{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:3px}.rx-h b{font-size:12.5px}.filmcard{display:flex;gap:10px;align-items:center;border:1px solid var(--hairline);border-radius:10px;padding:8px 10px;margin-bottom:8px;cursor:pointer}.filmcard:hover{background:var(--paper2)}.filmthumb{width:58px;height:44px;border-radius:8px;background:var(--ink);flex:none;display:grid;place-items:center;padding:4px;box-sizing:border-box}.filmthumb svg{width:50px;height:36px;display:block}.imgmodal{width:640px;max-width:92vw}.imgviewer{background:var(--ink);border-radius:10px;padding:10px 14px;margin-bottom:10px}.imgviewer svg{width:100%;height:auto;display:block}.film{stroke:var(--seaborder);fill:none;stroke-width:1.6;stroke-linecap:round}.film.f-dot{fill:var(--seaborder);stroke:none}.film-meta{flex:1;min-width:0;line-height:1.4}.labboard{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:12px}.labcol{background:var(--paper2);border:1px solid var(--hairline2);border-radius:10px;min-height:120px;padding:8px 8px 4px}.labcol h5{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--inkfaint);margin:2px 4px 8px;display:flex;justify-content:space-between}.labcard{background:var(--paper);border:1px solid var(--hairline);border-radius:9px;padding:8px 9px;margin-bottom:8px}.labcard b{font-size:12px;display:block}.labsub{font-size:11px;color:var(--ink2);margin-top:2px;line-height:1.35}.labdue{display:inline-block;font-size:9.5px;font-weight:700;border-radius:99px;padding:1px 7px;margin-top:6px;border:1px solid var(--hairline);color:var(--inkfaint)}.labdue.over{border-color:var(--coralborder);color:var(--coraldeep);background:var(--coralwash)}.stagechip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:99px;font-size:10px;font-weight:650;white-space:nowrap}.stagechip.sent{background:var(--amberwash);border:1px solid var(--amberborder);color:var(--amber)}.stagechip.inlab{background:var(--bluewash);border:1px solid var(--blueborder);color:#2f4fa8}.stagechip.received{background:var(--seawash);border:1px solid var(--seaborder);color:var(--seadeep)}.stagechip.fitted{background:var(--donewash);color:var(--donetext)}.nrow{display:flex;gap:10px;align-items:flex-start;border-bottom:1px solid var(--hairline2);padding:9px 2px 10px;cursor:pointer}.nrow:last-child{border-bottom:0}.nrow.unread{box-shadow:inset 3px 0 0 var(--sea);padding-left:9px}.nico{width:28px;height:28px;border-radius:8px;background:var(--paper2);border:1px solid var(--hairline);display:grid;place-items:center;color:var(--seadeep);flex:none}.nico svg{width:14px;height:14px}.nmain{flex:1;min-width:0;line-height:1.4}.nmain b{font-size:12.5px}.nwhen{font-size:10.5px;color:var(--inkfaint);white-space:nowrap;font-weight:600;flex:none;padding-top:2px}.st-cd{background:var(--paper);border:1px solid var(--hairline);color:var(--ink2)}.st-csub{background:var(--bluewash);border:1px solid var(--blueborder);color:#2f4fa8}.st-cadj{background:var(--seawash);border:1px solid var(--seaborder);color:var(--seadeep)}.st-cpaid{background:var(--donewash);color:var(--donetext)}.st-crej{background:var(--coralwash);border:1px solid var(--coralborder);color:var(--coraldeep)}.tl{list-style:none;margin:6px 0 0;padding:0}.tl li{position:relative;padding:0 0 7px 15px;font-size:11.5px;color:var(--ink2);line-height:1.4}.tl li:before{content:"";position:absolute;left:2px;top:5px;width:7px;height:7px;border-radius:50%;background:var(--seaborder)}.tl li:last-child{padding-bottom:0}.tl b{color:var(--ink);font-weight:650}.polrow{display:flex;gap:6px;align-items:flex-end;flex-wrap:wrap}@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media (max-width:1180px){:root{--panelw:300px}}#settingsview{flex:1;min-width:0;background:var(--paper);overflow:auto;padding:18px 22px}.admin-body{margin-top:14px}.admin-pane{max-width:1100px}.admin-narrow{max-width:620px}.admin-pane-head{display:flex;align-items:center;gap:10px;margin:4px 0 12px;flex-wrap:wrap}.admin-pane-head h3{font-size:14px;font-weight:700;letter-spacing:-.01em}.admin-table td{vertical-align:middle}.admin-actions{display:flex;gap:6px;white-space:nowrap}.admin-form{border:1px solid var(--hairline);border-radius:10px;padding:12px 12px 8px;margin-bottom:14px;background:var(--paper2)}.pillstat{display:inline-block;font-size:10px;font-weight:700;border-radius:99px;padding:2px 8px;border:1px solid var(--hairline);color:var(--inkfaint);white-space:nowrap}.pillstat.on{background:var(--seawash);border-color:var(--seaborder);color:var(--seadeep)}.pillstat.off{background:var(--coralwash);border-color:var(--coralborder);color:var(--coraldeep)}.pillstat.builtin{background:var(--amberwash);border-color:var(--amberborder);color:var(--amber);font-style:normal}.admin-split{display:flex;gap:18px;align-items:flex-start}.admin-list{width:260px;flex:none;display:flex;flex-direction:column;gap:5px}.admin-roleitem{display:flex;justify-content:space-between;align-items:center;gap:8px;text-align:left;padding:9px 11px;border:1px solid var(--hairline);border-radius:10px;background:var(--paper)}.admin-roleitem:hover{background:var(--paper2)}.admin-roleitem.on{border-color:var(--seaborder);background:var(--seawash)}.admin-rolemeta{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex:none}.admin-matrix{flex:1;min-width:0}.admin-matrix-body{display:flex;flex-direction:column;gap:14px;margin-top:10px}.admin-module{border:1px solid var(--hairline);border-radius:10px;padding:10px 12px;background:var(--paper)}.admin-module-head{display:flex;align-items:center;gap:8px;margin-bottom:4px}.admin-feature{display:flex;gap:12px;padding:5px 0;border-top:1px solid var(--hairline2)}.admin-feature-label{width:160px;flex:none;font-size:12px;color:var(--ink2);padding-top:2px}.admin-actions-grid{display:flex;flex-wrap:wrap;gap:5px 16px}.admin-perm{display:flex;align-items:center;gap:5px;font-size:12px;cursor:pointer}.admin-subtabs{display:flex;gap:6px;margin-bottom:12px}.audit-json{font-family:monospace;font-size:11px;color:var(--ink2);max-width:420px;display:inline-block;overflow-wrap:anywhere}#platformview{flex:1;min-width:0;background:var(--paper);overflow:auto;padding:18px 22px}.impbanner{display:flex;align-items:center;gap:10px;padding:7px 16px;background:var(--amberwash);border-bottom:1px solid var(--amberborder);color:var(--amber);font-size:12px;flex:none}.impbanner svg{width:16px;height:16px;flex:none}.impbanner b{font-weight:700}.impbanner .small{color:var(--amber)}@media (max-width:920px){.admin-split{flex-direction:column}.admin-list{width:100%}.admin-feature{flex-direction:column;gap:5px}#settingsview{padding:14px}}.panel-x{display:none}@media (max-width:920px){button{-webkit-tap-highlight-color:transparent;touch-action:manipulation}input,select,textarea{font-size:16px!important}#rail{top:auto;left:0;right:0;bottom:0;width:auto;height:calc(56px + env(safe-area-inset-bottom));flex-direction:row;align-items:stretch;padding:2px 4px calc(2px + env(safe-area-inset-bottom));border-right:0;border-top:1px solid var(--hairline);z-index:50;box-shadow:0 -1px 2px #13333b14}.rail-logo{display:none}.rail-nav{flex-direction:row;flex:1;gap:0;overflow-x:auto;scrollbar-width:none}.rail-nav::-webkit-scrollbar{display:none}.rnav{flex:1;min-width:46px;max-width:76px;padding:8px 0 7px}.rnav span{white-space:nowrap}.navbadge{top:2px;right:7px}.rail-foot{margin:0 0 0 auto;width:auto;padding:4px 2px;position:static;display:flex;align-items:center}#roleBtn{padding:6px 8px}.rf-txt{display:none}.rpop{position:fixed;left:10px;right:10px;width:auto;bottom:calc(64px + env(safe-area-inset-bottom))}#rail .buildfoot{display:none}#practice{height:100vh;height:100dvh;padding-left:0;padding-bottom:calc(58px + env(safe-area-inset-bottom))}#topbar{height:auto;min-height:48px;flex-wrap:wrap;padding:7px 10px;gap:7px 9px}.tb-left{flex:1 1 100%;flex-wrap:wrap;gap:6px}.dateinp{width:108px}#dateLabel{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tb-right{flex:1 1 100%;justify-content:flex-end;flex-wrap:wrap;gap:7px}#panel{position:fixed;left:0;right:0;top:0;bottom:calc(56px + env(safe-area-inset-bottom));z-index:65;display:none;width:auto;border-left:0;border-bottom:1px solid var(--hairline)}#panel.panel-open{display:flex}#panel .panel-x{display:grid;margin-left:auto}#panelBody{padding:12px 14px 24px}.lane{min-width:150px}#calwrap{-webkit-overflow-scrolling:touch}#insview,#repview,#notifview{padding:14px 14px 40px}.pt-head{flex-wrap:wrap;row-gap:8px}.kpi-row{flex-wrap:wrap}.labboard{grid-template-columns:1fr 1fr}.ps-grid{grid-template-columns:repeat(3,1fr)}#plansview{flex-direction:column;overflow:auto}.pl-left{width:auto;flex:none;overflow:visible;border-right:0;border-bottom:1px solid var(--hairline);padding:14px 14px 16px}.pl-right{overflow:visible;padding:16px 14px 44px}.odscroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.odscroll .odonto{width:max-content;min-width:100%}.odscroll .od-cell{width:37px;height:39px;font-size:10px}.modal .od-band{overflow-x:auto;-webkit-overflow-scrolling:touch;align-items:flex-start}.modal .od-band .od-row{width:max-content}.modal .od-band .od-cell{width:37px;height:39px;font-size:10px}.ti{flex-wrap:wrap}.ti-ctl{width:auto;flex-direction:row}.ti-ctl .btn{width:auto}.modal{width:100vw;max-width:100vw;height:100vh;height:100dvh;max-height:100dvh;border-radius:0}.modal.tp{width:100vw;max-width:100vw}.tp-cols{grid-template-columns:1fr}.m-foot,.m-foot .right{flex-wrap:wrap}#ptview{padding:12px 12px 40px}.ptable{min-width:660px}.dr-card{left:0;right:0;width:auto}#toasts{left:12px;right:12px;bottom:calc(66px + env(safe-area-inset-bottom))}.toast{max-width:none}.pnav-inner{flex-wrap:wrap;gap:10px;padding:10px 14px}.pnav-right{flex-wrap:wrap;row-gap:6px}.p-tabs2{max-width:100%;overflow-x:auto;scrollbar-width:none}.p-tabs2 button{white-space:nowrap}#portalBody{padding:4px 16px 70px}.p-hero h1{font-size:clamp(26px,7.5vw,36px)}.p-hero{padding-top:22px}body.route-login{overflow:auto}#login{align-items:start;padding-top:max(22px,env(safe-area-inset-top))}.lg-formwrap{padding:22px 18px 20px;min-height:0}}@media (max-width:560px){.labboard,.askgrid{grid-template-columns:1fr}.seg button{padding:4px 8px}.svc{min-width:128px}.nrow{flex-wrap:wrap}.nrow .nwhen{padding-left:38px}.kpi{min-width:96px}.slot{width:78px}.lh-sub{display:none}}
