:root{--ink:#193640;--muted:#5b7078;--teal:#126e66;--pale:#e8f4f1;--line:#dce5e7;--bg:#f4f7f8}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);font-size:15px}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button,.button{border:1px solid var(--line);border-radius:10px;background:white;padding:11px 16px;color:var(--ink);font-weight:600;cursor:pointer;min-height:44px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px}button:hover,.button:hover{border-color:var(--teal);background:var(--pale)}button.primary,.button.primary{background:var(--teal);border-color:var(--teal);color:white}button.danger{color:#ac3442}button:disabled{opacity:.55;cursor:wait}input,select,textarea{background:white;border:1px solid #c4d3d7;border-radius:9px;padding:11px;width:100%;color:var(--ink);min-height:44px}textarea{min-height:95px;resize:vertical}input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{outline:3px solid #8bd5cc;outline-offset:2px}label{display:block;font-size:13px;font-weight:650;margin-bottom:15px}label input,label select,label textarea{margin-top:6px}h1{font-size:29px;letter-spacing:-1px;margin:4px 0 8px}h2{font-size:19px;margin:0 0 18px;letter-spacing:-.3px}h3{font-size:16px}p{line-height:1.6}small,.muted{color:var(--muted);line-height:1.5}header{height:76px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 32px;gap:15px}header .brand{font-size:17px;font-weight:750;display:flex;align-items:center;gap:10px}header img{width:36px;height:36px}.shell{display:grid;grid-template-columns:220px 1fr;max-width:1600px;margin:auto;min-height:calc(100vh - 76px)}nav{padding:30px 18px;border-right:1px solid var(--line)}nav button{width:100%;justify-content:flex-start;border:0;background:transparent;margin-bottom:8px}nav .active{color:var(--teal);background:#dfeeea}nav .hint{padding:24px 12px;font-size:12px;color:var(--muted)}main{padding:32px;max-width:1200px;width:100%;margin:auto}.pagehead{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:25px}.eyebrow{text-transform:uppercase;letter-spacing:1.8px;font-size:11px;font-weight:750;color:var(--teal)}.card{background:white;border:1px solid var(--line);border-radius:16px;padding:24px;margin-bottom:20px;box-shadow:0 4px 18px #1e4c5805}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.wide{grid-column:1/-1}.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:22px}.stat{padding:20px;background:white;border:1px solid var(--line);border-radius:14px}.stat strong{display:block;font-size:28px;margin-top:5px}.search{max-width:420px}.listitem{padding:20px 0;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:18px}.listitem:last-child{border-bottom:0}.listitem h3{margin:0 0 6px}.badge{display:inline-block;font-size:11px;background:var(--pale);color:var(--teal);border-radius:30px;padding:5px 9px;margin:3px}.badge.pending{background:#fff4d9;color:#795e14}.empty{text-align:center;padding:45px 16px}.empty img{width:64px;opacity:.85}.login{max-width:440px;margin:8vh auto;padding:20px}.login .card{padding:30px}.login img{width:52px}.notice{background:#f0f7f6;padding:14px 16px;border-left:3px solid var(--teal);font-size:13px;line-height:1.6;border-radius:5px;margin:16px 0}.notice.warn{background:#fff6df;border-color:#dbac39}.teeth-row{display:flex;justify-content:center;gap:5px;margin:8px 0}.tooth{padding:0;width:42px;min-width:25px;min-height:58px;display:flex;flex-direction:column;gap:3px;font-size:11px;background:#f7fafb;border-radius:9px}.tooth svg{width:26px;height:30px}.tooth.selected{background:var(--teal);color:white;border-color:var(--teal)}.tooth.assigned{box-shadow:inset 0 -4px #61b9a7}.dentition{overflow-x:auto;padding:10px 0}.dental-inner{min-width:530px}.dental-label{font-size:10px;color:var(--muted);display:flex;justify-content:space-between;max-width:740px;margin:auto}.itemrow{display:grid;grid-template-columns:2fr 70px 110px 120px 45px;align-items:center;gap:10px;border-bottom:1px solid var(--line);padding:12px 0}.itemrow .price{font-weight:700}.itemrow button{padding:7px}.totalbox{background:var(--pale);border-radius:12px;padding:20px;margin:16px 0;display:flex;justify-content:space-between;align-items:center}.totalbox strong{font-size:25px}.payment{display:grid;grid-template-columns:1fr 1fr;gap:16px}.payment>div{border:1px solid var(--line);border-radius:12px;padding:20px}.payment strong{display:block;font-size:22px;margin:10px 0}.preview-logo{max-width:160px;max-height:70px;display:block;margin:12px 0}.hash{font:11px ui-monospace,monospace;overflow-wrap:anywhere}.public{max-width:850px;margin:25px auto;padding:16px}.check{display:flex;align-items:flex-start;gap:12px;font-weight:400;font-size:14px}.check input{width:22px;height:22px;min-height:22px;flex:none;margin:0}.receipt{border:1px solid var(--line);padding:18px;margin:12px 0;border-radius:12px}#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#193640;color:white;max-width:90vw;border-radius:12px;padding:14px 22px;z-index:99;display:none;box-shadow:0 4px 20px #0003}#toast.show{display:block}.loading{text-align:center;padding:20vh 20px}.busy{opacity:.6;pointer-events:none}.versionbar{display:flex;align-items:center;gap:10px;margin-bottom:20px}a{color:var(--teal)}.error{color:#a52b38;white-space:pre-wrap}.foot{font-size:12px;color:var(--muted);margin:30px 0}.catalogrow{display:grid;grid-template-columns:2fr 1fr 1fr 44px;gap:12px;align-items:end;margin-bottom:10px}.catalogrow label{margin:0}.visuallyhidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}@media(max-width:1000px){.shell{grid-template-columns:170px 1fr}main{padding:24px 20px}.itemrow{grid-template-columns:1fr 60px 90px 90px 40px}.teeth-row{gap:3px}.tooth{width:34px}}@media(max-width:700px){header{height:66px;padding:0 16px}header .brand{font-size:15px}header .email{display:none}.shell{display:block}nav{position:sticky;top:0;background:white;z-index:5;display:flex;padding:7px 10px;border-bottom:1px solid var(--line);gap:3px;overflow:auto}nav button{font-size:12px;white-space:nowrap;margin:0;width:auto;padding:9px 12px}nav .hint{display:none}main{padding:24px 14px}.pagehead{align-items:flex-start}h1{font-size:25px}.card{padding:19px 16px;border-radius:12px}.grid,.grid.three{grid-template-columns:1fr}.stats{gap:8px}.stat{padding:12px;font-size:11px}.stat strong{font-size:24px}.listitem{align-items:flex-start;flex-direction:column;gap:10px}.listitem .actions{width:100%}.itemrow{grid-template-columns:1fr 60px 95px 40px;gap:8px}.itemrow .price{grid-column:1/-1;text-align:right;font-size:13px;grid-row:2}.itemrow .remove{grid-column:4;grid-row:1}.itemrow .itemname{font-size:13px}.payment{grid-template-columns:1fr}.totalbox strong{font-size:22px}.catalogrow{grid-template-columns:1fr 1fr 44px;border-bottom:1px solid var(--line);padding:12px 0}.catalogrow .catname{grid-column:1/-1}.public{padding:10px;margin:5px auto}.actions>*{flex-grow:1}.versionbar{flex-wrap:wrap}.login{margin-top:4vh}}
@media print{nav,header,button,.actions{display:none}body{background:white}.card{border:0;box-shadow:none}main{padding:0}}
