*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}*:focus-visible{outline:2px solid var(--primary);outline-offset:2px}:root{color-scheme:light;--bg: #f5f5f7;--surface: #ffffff;--primary: #0071e3;--primary-hover: #0077ed;--primary-light: rgba(0,113,227,.08);--primary-glow: rgba(0,113,227,.12);--text-primary: #1d1d1f;--text-secondary: #6e6e73;--text-tertiary: #aeaeb2;--border: #d2d2d7;--border-light: #e8e8ed;--crown-bg: #0071e3;--crown-text: #ffffff;--pontic-bg: #34c759;--pontic-text: #ffffff;--missing-border: #c7c7cc;--bridge-color: #8e8e93;--danger: #ff3b30;--danger-soft: #ff453a;--danger-bg: rgba(255,59,48,.04);--success: #34c759;--bg-secondary: #e8e8ed;--warning: #ff9500;--radius-sm: 8px;--radius: 12px;--radius-lg: 16px;--radius-xl: 20px;--shadow-sm: 0 1px 3px rgba(0,0,0,.04);--shadow: 0 2px 12px rgba(0,0,0,.06);--shadow-lg: 0 8px 30px rgba(0,0,0,.12);--shadow-popover: 0 4px 20px rgba(0,0,0,.15);--ease: cubic-bezier(.25, .1, .25, 1);--transition: .25s cubic-bezier(.25, .1, .25, 1);--font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Helvetica Neue", "Segoe UI", sans-serif}body{font-family:var(--font);background:var(--bg);color:var(--text-primary);font-size:17px;line-height:1.47;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;min-height:100dvh}.container{max-width:680px;margin:0 auto;padding:40px 24px 80px;padding-bottom:calc(80px + env(safe-area-inset-bottom,0px))}@media(max-width:600px){.container{padding:20px 16px 60px;padding-bottom:calc(60px + env(safe-area-inset-bottom,0px))}}.header{text-align:center;margin-bottom:32px;position:relative;z-index:2}.header h1{font-size:36px;font-weight:300;letter-spacing:-.015em;color:#0000008f;margin-bottom:4px}.header p{font-size:15px;color:var(--text-secondary);font-weight:400;letter-spacing:.01em}.header-brand{font-family:"Noto Serif Display",serif;font-size:36px;font-weight:200;letter-spacing:.06em;color:#1a1a1a;margin-bottom:0;display:inline-block;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.brand-accent{font-weight:400;background:linear-gradient(315deg,#1a1a1a 0% 35%,#b4c3d2d9 44%,#ffffffe6,#b4c3d2d9 56%,#1a1a1a 65% 100%);background-size:300% 300%;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:shimmer 10s ease-in-out infinite}.header-helix{position:absolute;right:100%;top:50%;transform:translateY(-50%);margin-right:18px;width:23.4px;height:72px;pointer-events:none}.header-helix .ha,.header-helix .hb{position:absolute;border-radius:50%;left:50%;background:transparent}.header-helix .ha{animation:helix-a 3s ease-in-out infinite;border:1px solid #4A6B8A}.header-helix .hb{animation:helix-b 3s ease-in-out infinite;border:1px solid #8AABC4}.header-helix .hr{position:absolute;border-radius:.5px;animation:helix-r 3s ease-in-out infinite;background:linear-gradient(90deg,#4a6b8a,#8aabc4)}@keyframes helix-a{0%{transform:translate(-14.4px);z-index:2;opacity:1}25%{transform:translate(0);z-index:2;opacity:.8}50%{transform:translate(14.4px);z-index:0;opacity:.5}75%{transform:translate(0);z-index:0;opacity:.8}to{transform:translate(-14.4px);z-index:2;opacity:1}}@keyframes helix-b{0%{transform:translate(14.4px);z-index:0;opacity:.5}25%{transform:translate(0);z-index:0;opacity:.8}50%{transform:translate(-14.4px);z-index:2;opacity:1}75%{transform:translate(0);z-index:2;opacity:.8}to{transform:translate(14.4px);z-index:0;opacity:.5}}@keyframes helix-r{0%{transform:scaleX(1);opacity:.25}25%{transform:scaleX(.15);opacity:.06}50%{transform:scaleX(1);opacity:.25}75%{transform:scaleX(.15);opacity:.06}to{transform:scaleX(1);opacity:.25}}@keyframes shimmer{0%,78%{background-position:0% 0%}93%,to{background-position:100% 100%}}.header-brand-line{display:block;margin:3px auto 2px}.header-back{position:absolute;left:0;top:4px;display:flex;align-items:center;gap:4px;color:var(--primary);text-decoration:none;font-size:14px;font-weight:500;padding:6px 10px 6px 2px;border-radius:10px;transition:background .2s}.header-back:active{background:var(--surface)}.header-back svg{flex-shrink:0}@media(max-width:600px){.header h1{font-size:32px}.header p{font-size:15px}.header{margin-bottom:24px}.header-brand{font-size:34px;letter-spacing:.04em}.header-helix{width:9px;height:29.7px;margin-right:28px;top:50%;transform:translateY(-100%)}}.card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow);margin-bottom:12px;overflow:hidden;transition:box-shadow var(--transition)}.card--formula{overflow:visible}.card-title{font-size:20px;font-weight:600;letter-spacing:-.01em;color:var(--text-primary);padding:20px 20px 0}.form-row{display:flex;align-items:center;padding:11px 20px;border-bottom:.5px solid var(--border-light);gap:12px;transition:box-shadow .8s ease-out}.form-row:last-child{border-bottom:none}.form-row label{font-size:17px;color:var(--text-primary);min-width:95px;flex-shrink:0;font-weight:400}.form-row label .required,.card-title .required{color:var(--danger-soft);margin-left:2px}.form-row input,.form-row select{flex:1;text-align:right;border:none;background:transparent;font-size:16px;font-family:var(--font);color:var(--text-primary);outline:none;min-width:0;-webkit-appearance:none;appearance:none;transition:box-shadow .8s ease-out,border-radius .3s ease,padding .3s ease,background .3s ease}.form-row input[type=date]{-webkit-appearance:auto;appearance:auto;min-height:30px;color-scheme:light}.form-row input[type=date]::-webkit-date-and-time-value{text-align:right}.form-row input[type=date]:not(.has-value){color:var(--text-tertiary)}.form-row input[type=date]:not(.has-value)::-webkit-date-and-time-value{color:var(--text-tertiary)}#delivery-date-btn{flex:1;text-align:right;border:none;background:transparent;font-size:16px;font-family:var(--font);color:var(--text-primary);cursor:pointer;padding:8px 10px;outline:none;min-width:0;transition:box-shadow .8s ease-out,border-radius .3s ease,padding .3s ease,background .3s ease}#delivery-date-btn.is-placeholder{color:var(--text-tertiary)}.form-row input[type=date].dt-hidden{position:absolute;right:0;top:0;bottom:0;width:55%;opacity:0;cursor:pointer;font-size:16px}.form-row input[type=date].dt-hidden::-webkit-calendar-picker-indicator{position:absolute;inset:0;width:auto;height:auto;margin:0;padding:0;opacity:0;cursor:pointer}.form-row select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23aeaeb2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right center;padding-right:16px;cursor:pointer;direction:rtl;color-scheme:light}.form-row select option{direction:ltr}.form-row input::placeholder,.form-row select option[value=""]{color:var(--text-tertiary)}.form-row select.is-placeholder{color:var(--text-tertiary)}#delivery-time-btn{flex:1;text-align:right;border:none;background:transparent;font-size:16px;font-family:var(--font);color:var(--text-primary);cursor:pointer;padding:8px 10px;outline:none;min-width:0;transition:box-shadow .8s ease-out,border-radius .3s ease,padding .3s ease,background .3s ease}#delivery-time-btn.is-placeholder{color:var(--text-tertiary)}.form-row select.visually-hidden{position:absolute;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden}.clinic-empty-msg{font-size:14px;color:var(--text-secondary);padding:8px 16px 4px;line-height:1.4}.clinic-empty-msg a{color:var(--primary);text-decoration:none}.form-row textarea{flex:1;text-align:right;border:none;background:transparent;font-size:16px;font-family:var(--font);color:var(--text-primary);outline:none;resize:none;min-height:24px;line-height:1.47;overflow:hidden}.form-row textarea::placeholder{color:var(--text-tertiary)}.form-row.has-error input,.form-row.has-error select,.form-row.has-error textarea,.form-row.has-error #delivery-time-btn,.form-row.has-error #delivery-date-btn{box-shadow:0 0 0 1.5px #ff3b3059,0 2px 8px #ff3b3014;border-radius:var(--radius-sm);padding:6px 10px;background:var(--surface)}.shade-section.has-error{box-shadow:inset 0 0 0 1.5px #ff3b304d;border-radius:var(--radius)}select.has-error,input.has-error,textarea.has-error{box-shadow:0 0 0 1.5px #ff3b3059,0 2px 8px #ff3b3014}.chart-scroll.has-error{box-shadow:inset 0 0 0 1.5px #ff3b304d;border-radius:var(--radius)}.garland-selector.has-error .garland-teeth{box-shadow:0 0 0 1.5px #ff3b3059,0 2px 8px #ff3b3014;border-radius:8px;padding:6px}.jaw-selector.has-error{box-shadow:0 0 0 1.5px #ff3b3059,0 2px 8px #ff3b3014;border-radius:var(--radius-sm)}.artgum-selector.has-error .garland-teeth{box-shadow:0 0 0 1.5px #ff3b3059,0 2px 8px #ff3b3014;border-radius:8px;padding:6px}.tooth.has-error{box-shadow:0 0 0 3px #ff3b3059;border-color:#ff3b3099}.toolbar{display:flex;flex-direction:column;margin:16px 20px 0;gap:4px;position:relative}.toolbar-row{display:flex;gap:2px;justify-content:center;background:#7676801f;border-radius:var(--radius-sm);padding:2px}.toolbar-row:last-child{width:calc((100% - 4px)*.8 + 4px);margin:0 auto}.toolbar-row .toolbar-btn{flex:1}.toolbar-btn{padding:8px 4px;font-size:13px;font-weight:500;font-family:var(--font);color:var(--text-secondary);background:transparent;border:none;border-radius:6px;cursor:pointer;transition:background var(--transition),color var(--transition),box-shadow var(--transition),transform var(--transition);text-align:center;touch-action:manipulation;-webkit-tap-highlight-color:transparent;user-select:none;position:relative;z-index:1;white-space:nowrap}.toolbar-btn.active{color:var(--text-primary);background:var(--surface);box-shadow:0 1px 4px #00000014,0 .5px 1px #0000000a;font-weight:600}.toolbar-btn:active{transform:scale(.97)}@media(max-width:600px){.toolbar{margin:12px 16px 0}.toolbar-btn{font-size:12px;padding:8px 2px}.chart-scroll{padding:12px 12px 8px}.tooth{width:44px;height:44px;min-width:44px;min-height:44px;font-size:14px}.midline{height:32px;margin:0 3px}.teeth-row{gap:4px}}.hint-bar{text-align:center;font-size:13px;color:var(--text-tertiary);padding:8px 20px 0;min-height:30px;transition:opacity var(--transition)}.hint-bar.hidden{opacity:0;pointer-events:none}.hint-bar--accent{color:var(--warning);font-weight:500;font-size:13.5px;animation:hint-pulse 2s ease-in-out 1}@keyframes hint-pulse{0%{opacity:.4}50%{opacity:1}to{opacity:1}}.popover{position:fixed;z-index:100;background:var(--surface);border-radius:14px;box-shadow:0 4px 32px #00000024,0 0 0 .5px #0000000f;padding:6px;min-width:220px;transform-origin:top center;opacity:0;transform:scale(.88) translateY(-4px);pointer-events:none;transition:opacity .22s cubic-bezier(.4,0,.2,1),transform .22s cubic-bezier(.4,0,.2,1)}.popover.visible{opacity:1;transform:scale(1) translateY(0);pointer-events:auto}.popover.flip{transform-origin:bottom center;transform:scale(.88) translateY(4px)}.popover.flip.visible{transform:scale(1) translateY(0)}.popover-item{display:block;width:100%;padding:11px 14px;font-size:15px;font-family:var(--font);color:var(--text-primary);background:transparent;border:none;border-radius:9px;text-align:left;cursor:pointer;transition:background .15s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent}@media(hover:hover){.popover-item:hover{background:#0000000d}}.popover-item:active{background:#0000001a}.tooth--focused{box-shadow:0 0 0 3px var(--primary),0 0 12px #0071e340!important;z-index:2}.tooth--pontic.tooth--focused{box-shadow:0 0 0 2.5px var(--primary),0 0 8px #0071e333!important;animation:none!important}.bottom-sheet-backdrop{display:none;position:fixed;inset:0;background:#00000012;z-index:200;opacity:0;transition:opacity .3s ease;pointer-events:none;-webkit-tap-highlight-color:transparent}.bottom-sheet-backdrop.visible{display:block;opacity:1;pointer-events:none}.bottom-sheet{position:fixed;left:0;right:0;bottom:0;background:var(--surface);border-radius:16px 16px 0 0;z-index:201;transform:translateY(100%);transition:transform .35s cubic-bezier(.32,.72,0,1);padding-bottom:env(safe-area-inset-bottom,0px);box-shadow:0 -4px 24px #0000001f}.bottom-sheet.visible{transform:translateY(0);pointer-events:auto}.bottom-sheet-handle{width:36px;height:5px;background:#0000001f;border-radius:3px;margin:8px auto 4px}.bottom-sheet-title{font-size:15px;font-weight:600;text-align:center;padding:8px 20px 12px;color:var(--text-primary)}.bottom-sheet-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 6px;padding:4px 12px 8px}.bottom-sheet-item{display:block;width:100%;margin:0;padding:12px 8px;font-size:15px;font-family:var(--font);color:var(--text-primary);background:#00000008;border:none;border-radius:10px;text-align:center;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background .15s ease}@media(hover:hover){.bottom-sheet-item:hover{background:#0000000f}}.bottom-sheet-item:active{background:#0000001a}.bottom-sheet-cancel{display:none}.field-locked{background:transparent!important;color:var(--text-primary)!important;cursor:default}@media(max-width:600px){.bottom-sheet-item{padding:10px 6px;font-size:14px}.bottom-sheet-grid{gap:4px;padding:4px 8px 8px}}.chart-scroll{overflow-x:auto;overflow-y:visible;scrollbar-width:none;padding:20px 24px 24px;position:relative;transition:box-shadow .8s ease-out;text-align:center}.chart-scroll::-webkit-scrollbar{display:none}.chart-inner{display:inline-flex;flex-direction:column;align-items:center;min-width:540px;position:relative}.teeth-row{display:flex;gap:3px;align-items:center;flex-shrink:0}.midline{width:1px;height:28px;background:var(--border-light);margin:0 4px;flex-shrink:0}.jaw-divider{width:100%;height:1px;background:var(--border-light);margin:6px 0}.tooth{width:30px;height:30px;min-width:30px;min-height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:var(--text-secondary);background:#f0f0f5;border:1.5px solid transparent;cursor:pointer;transition:box-shadow var(--transition),border-color var(--transition),background var(--transition),transform var(--transition);touch-action:manipulation;-webkit-tap-highlight-color:transparent;user-select:none;position:relative;flex-shrink:0}@media(hover:hover){.tooth:hover{box-shadow:0 0 0 4px var(--primary-glow);border-color:#0071e333}}.tooth:active{transform:scale(.9)}.tooth--crown{background:#4a9aea;color:#fff;border-color:transparent;box-shadow:0 2px 8px #4a9aea33}@media(hover:hover){.tooth--crown:hover{box-shadow:0 2px 8px #4a9aea33,0 0 0 4px #4a9aea1a}}.tooth--implant:after{content:"";position:absolute;top:2px;right:2px;width:8px;height:8px;background:#ff9500;border-radius:50%;border:1.5px solid #fff}.tooth--pontic{background:#5ec77a;color:#fff;border-color:transparent;box-shadow:0 2px 8px #5ec77a33}.tooth--needs-material{animation:pontic-pulse 1.2s ease-in-out infinite}@keyframes pontic-pulse{0%,to{box-shadow:0 2px 8px #dc504626}50%{box-shadow:0 0 0 6px #dc504647}}@media(hover:hover){.tooth--pontic:hover{box-shadow:0 2px 8px #5ec77a33,0 0 0 4px #5ec77a1a}}.tooth--missing{background:transparent;border:1.5px solid transparent;color:transparent}.tooth--missing .cross{position:absolute;width:60%;height:1.5px;background:var(--missing-border);transform:rotate(-45deg);border-radius:1px}.tooth--missing .cross:after{content:"";position:absolute;width:100%;height:100%;background:inherit;transform:rotate(90deg);border-radius:inherit}@media(hover:hover){.tooth--missing:hover{box-shadow:0 0 0 4px #aeaeb21f;border-color:var(--text-tertiary)}}.tooth--veneer{background:#b77acc;color:#fff;border-color:transparent;box-shadow:0 2px 8px #b77acc33}@media(hover:hover){.tooth--veneer:hover{box-shadow:0 2px 8px #b77acc33,0 0 0 4px #b77acc1a}}.tooth--stump{background:#6cb4d9;color:#fff;border-color:transparent;box-shadow:0 2px 8px #6cb4d933}@media(hover:hover){.tooth--stump:hover{box-shadow:0 2px 8px #6cb4d933,0 0 0 4px #6cb4d91a}}.tooth--onlay-inlay{background:#f5a623;color:#fff;border-color:transparent;box-shadow:0 2px 8px #f5a62333}@media(hover:hover){.tooth--onlay-inlay:hover{box-shadow:0 2px 8px #f5a62333,0 0 0 4px #f5a6231a}}.tooth--transfer{background:#ff3b30;color:#fff;border-color:transparent;box-shadow:0 2px 8px #ff3b3033}@media(hover:hover){.tooth--transfer:hover{box-shadow:0 2px 8px #ff3b3033,0 0 0 4px #ff3b301a}}.tooth--has-stump:after{content:"";position:absolute;bottom:2px;right:2px;width:8px;height:8px;border-radius:50%;background:#6cb4d9;border:1.5px solid #fff}.tooth--in-bridge{border-radius:50%}.tooth--bridge-start{animation:ringPulse 1.5s ease-in-out infinite}@keyframes ringPulse{0%,to{box-shadow:0 0 0 3px #0071e34d}50%{box-shadow:0 0 0 7px #0071e314}}.tooth--bar-support{background:#e85d04;color:#fff;border-color:transparent;box-shadow:0 2px 8px #e85d0440}@media(hover:hover){.tooth--bar-support:hover{box-shadow:0 2px 8px #e85d0440,0 0 0 4px #e85d041a}}.tooth--bar-support:after{content:"";position:absolute;top:1px;right:1px;width:8px;height:8px;background:#fff;border-radius:50%;border:1.5px solid #e85d04}.bar-path{fill:none;stroke:var(--bridge-color);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.bar-tick{stroke:var(--bridge-color);stroke-width:1.5;stroke-linecap:round}#bar-panel-container{padding:0 20px 12px}.bar-panel{background:var(--bg);border-radius:var(--radius);padding:12px}.bar-divider{border:none;border-top:1px solid var(--border-light);margin:12px 0}.bar-panel-title{font-weight:600;font-size:15px;color:#e85d04;margin-bottom:12px;display:flex;align-items:center;gap:8px}.bar-section{margin-bottom:12px}.bar-section-label{font-size:13px;font-weight:600;color:var(--text-secondary);margin-bottom:6px}.bar-mat-hint{font-size:12px;color:var(--text-secondary);padding:8px 0;font-style:italic}.bar-mat-list{display:flex;flex-direction:column;gap:4px}.bar-mat-item{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:13px}.bar-mat-item-num{font-weight:600;color:var(--primary);min-width:24px}.bar-mat-item-label{color:var(--text-primary)}.bar-delete-btn{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;font-size:12px;color:#ff3b30;background:#ff3b3014;border:none;border-radius:var(--radius-sm);cursor:pointer;margin-top:8px}.bar-delete-btn:active{opacity:.7}.legend-swatch--bar{background:#e85d04}.legend-swatch--transfer{background:#ff3b30}#bridge-svg{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:5}.bridge-path{stroke:var(--bridge-color);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none}.bridge-tick{stroke:var(--bridge-color);stroke-width:1.5;stroke-linecap:round}.work-group-teeth .bridge-path,.work-group-teeth .bridge-tick{stroke:var(--text-tertiary);stroke-width:1.5}@keyframes bridgeDraw{0%{stroke-dashoffset:var(--len)}to{stroke-dashoffset:0}}.legend{display:flex;gap:12px;justify-content:center;padding:8px 20px;flex-wrap:wrap;min-height:0}.legend-item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary);animation:legendFadeIn .35s cubic-bezier(.4,0,.2,1) both}@keyframes legendFadeIn{0%{opacity:0;transform:translateY(6px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}.legend-swatch{width:16px;height:16px;border-radius:50%;flex-shrink:0}.legend-swatch--crown{background:#4a9aea}.legend-swatch--implant{background:#4a9aea;position:relative}.legend-swatch--implant:after{content:"";position:absolute;top:1px;right:1px;width:7px;height:7px;background:#ff9500;border-radius:50%;border:1.5px solid var(--surface)}.legend-swatch--pontic{background:#5ec77a}.legend-swatch--missing{background:transparent;border:1.5px dashed var(--missing-border);position:relative}.legend-swatch--missing:after{display:none}.legend-swatch--bridge{width:20px;height:16px;border-radius:0;position:relative}.legend-swatch--bridge:before{content:"";position:absolute;top:50%;left:0;right:0;height:2px;background:var(--bridge-color);border-radius:1px}.legend-swatch--bridge:after{content:"";position:absolute;top:25%;left:3px;width:2px;height:50%;background:var(--bridge-color);border-radius:1px;box-shadow:12px 0 0 var(--bridge-color)}.legend-swatch--veneer{background:#b77acc}.legend-swatch--stump{background:#6cb4d9}.legend-swatch--onlay-inlay{background:#f5a623}.clear-formula-btn{display:block;margin:4px auto 16px;padding:8px 16px;font-size:14px;font-family:var(--font);color:var(--danger-soft);opacity:.85;background:transparent;border:none;cursor:pointer;transition:opacity var(--transition);touch-action:manipulation;-webkit-tap-highlight-color:transparent}@media(hover:hover){.clear-formula-btn:hover{opacity:1}}.clear-formula-btn:active{opacity:.6}.work-groups-container{padding:0 20px 12px}.work-group{background:var(--bg);border-radius:var(--radius);padding:12px;margin-bottom:8px;position:relative;transition:box-shadow var(--transition)}@media(hover:hover){.work-group:hover{box-shadow:0 0 0 1px var(--border-light)}}.work-group-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.work-group-label{font-size:13px;font-weight:600;color:var(--text-secondary)}.work-group-remove{width:24px;height:24px;border-radius:50%;background:#ff3b3014;color:var(--danger-soft);border:none;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;transition:background var(--transition);touch-action:manipulation;-webkit-tap-highlight-color:transparent}@media(hover:hover){.work-group-remove:hover{background:#ff3b3026}}.work-group-teeth-wrap{position:relative;margin-bottom:10px}.work-group-teeth{display:flex;flex-direction:column;gap:2px}.work-group-teeth .teeth-row{position:relative;display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;padding:0 2px}.work-group-teeth .teeth-row::-webkit-scrollbar{display:none}.work-group-teeth .teeth-row.has-bridge-above{padding-top:10px}.work-group-teeth .teeth-row.has-bridge-below{padding-bottom:10px}.work-group-teeth .teeth-row svg.wg-bridge-svg{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible}.tooth-chip{display:inline-flex;align-items:center;padding:3px 10px;background:var(--primary-light);color:var(--primary);border-radius:12px;font-size:13px;font-weight:500;cursor:pointer;transition:background var(--transition),color var(--transition);touch-action:manipulation;-webkit-tap-highlight-color:transparent;flex-shrink:0;white-space:nowrap}@media(hover:hover){.tooth-chip:hover{background:#0071e326}}.tooth-chip.selected{background:var(--primary);color:var(--crown-text)}.tooth-chip--pontic{background:#34c7591a;color:var(--pontic-bg)}.tooth-chip--pontic.selected{background:var(--pontic-bg);color:var(--pontic-text)}.tooth-chip--crown{background:#0071e31a;color:var(--primary)}.tooth-chip--implant{position:relative}.tooth-chip--implant:after{content:"";position:absolute;top:-2px;right:-2px;width:11px;height:11px;background:#ff9500;border-radius:50%;border:1.5px solid var(--surface)}.tooth-chip--veneer{background:#af52de1a;color:#af52de}.tooth-chip--stump{background:#6cb4d926;color:#4a9aea}.tooth-chip--onlay-inlay{background:#ff95001a;color:#ff9500}.work-group-count{font-size:12px;color:var(--text-tertiary);font-weight:400}.work-group-row{display:flex;gap:8px;margin-bottom:6px}.work-group-row select{flex:1;padding:8px 26px 8px 12px;border:1px solid var(--border-light);border-radius:var(--radius-sm);font-size:16px;font-family:var(--font);background:var(--surface);color:var(--text-primary);-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23aeaeb2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:box-shadow .8s ease-out}.per-tooth-material-row{align-items:center}.pontic-num{font-size:14px;font-weight:600;color:var(--text-secondary);width:28px;min-width:28px;text-align:center;flex-shrink:0}.summary-pontic-detail{font-size:12px;color:var(--text-secondary);padding-left:12px;margin-left:0}.add-work-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:12px;font-size:15px;font-family:var(--font);font-weight:500;color:var(--primary);background:var(--primary-light);border:1.5px dashed rgba(0,113,227,.25);border-radius:var(--radius);cursor:pointer;transition:background var(--transition),border-color var(--transition);touch-action:manipulation;-webkit-tap-highlight-color:transparent}@media(hover:hover){.add-work-btn:hover{background:#0071e31f;border-color:#0071e366}}.add-work-btn:active{transform:scale(.98)}.implant-panel{display:none;padding:0 20px 12px}.implant-panel.visible{display:block}.implant-panel-inner{background:var(--bg);border-radius:var(--radius);padding:12px}.implant-panel-title{font-size:13px;font-weight:600;color:var(--text-secondary);margin-bottom:10px}.toggle-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;margin-bottom:8px}.toggle-label{font-size:13px;color:var(--text-primary)}.implant-uniform-row{background:#0071e30f;border:1.5px solid rgba(0,113,227,.2);border-radius:8px;padding:7px 12px;margin-bottom:12px}.implant-uniform-label{font-weight:600;font-size:13px;color:var(--primary)}.polishing-section{display:none;margin-top:12px;padding-top:12px;border-top:1px solid rgba(0,0,0,.08)}.polishing-section.visible{display:block}.polishing-toggle-row{background:#9c27b00f;border:1.5px solid rgba(156,39,176,.2);border-radius:8px;padding:7px 12px;margin-bottom:8px}.polishing-toggle-label{font-weight:600;font-size:13px;color:#9c27b0}.bar-uniform-toggle-row{background:#e85d040f;border:1.5px solid rgba(232,93,4,.2);border-radius:8px;padding:7px 12px;margin-bottom:8px}.bar-uniform-toggle-label{font-weight:600;font-size:13px;color:#e85d04}.work-type-uniform-row{background:#0071e30f;border:1.5px solid rgba(0,113,227,.2);border-radius:8px;padding:7px 12px;margin-bottom:8px}.work-type-uniform-label{font-weight:600;font-size:13px;color:var(--primary)}.polishing-uniform-row{display:flex;align-items:center;justify-content:space-between;padding:6px 14px;margin-bottom:8px;font-size:13px;color:var(--text-secondary)}.polishing-tooth-row{display:flex;align-items:center;padding:8px 0;border-bottom:1px solid rgba(0,0,0,.05);gap:10px}.polishing-tooth-row:last-child{border-bottom:none}.polishing-tooth-num{font-weight:700;font-size:15px;color:var(--primary);min-width:28px}.polishing-tooth-label{font-size:13px;color:var(--text-secondary);flex:1}.polishing-checkbox{width:22px;height:22px;accent-color:#9C27B0}.toggle{width:34px;height:20px;border-radius:10px;background:#78788029;border:none;cursor:pointer;position:relative;transition:background .25s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent;flex-shrink:0}.toggle.on{background:var(--success)}.toggle-knob{width:16px;height:16px;border-radius:50%;background:var(--surface);box-shadow:0 2px 4px #00000026;position:absolute;top:2px;left:2px;transition:transform .25s ease}.toggle.on .toggle-knob{transform:translate(14px)}.implant-select-row{display:flex;gap:8px;margin-bottom:6px}.implant-select-row select,.implant-select-row input{flex:0 0 calc(50% - 4px);width:calc(50% - 4px);min-width:0;box-sizing:border-box;padding:8px 12px;border:1px solid var(--border-light);border-radius:var(--radius-sm);font-size:16px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-family:var(--font);background:var(--surface);color:var(--text-primary);-webkit-appearance:none;appearance:none;transition:box-shadow .8s ease-out}.implant-select-row select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23aeaeb2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:26px;cursor:pointer}.implant-per-tooth{margin-top:8px}.implant-tooth-row{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:.5px solid var(--border-light)}.implant-tooth-row:last-child{border-bottom:none}.implant-tooth-num{font-size:14px;font-weight:600;color:var(--primary);width:28px;min-width:28px;text-align:center;flex-shrink:0}.implant-tooth-row .implant-select-row{margin-bottom:0;flex:1;min-width:0}.work-group-row .implant-select-row{flex:1;min-width:0;margin-bottom:0}@media(max-width:600px){.implant-select-row{gap:6px}.implant-select-row select,.implant-select-row input{flex:0 0 calc(50% - 3px);width:calc(50% - 3px);min-width:0;padding:8px;font-size:16px}.implant-select-row select{padding-right:22px;background-position:right 6px center}.implant-tooth-row{gap:6px}.implant-tooth-num{width:24px;min-width:24px;font-size:13px}.implant-panel{padding:0 12px 12px}}.summary-panel{padding:12px 20px 8px;border-bottom:.5px solid var(--border-light)}.summary-title{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);margin-bottom:8px}.summary-content{font-size:14px;color:var(--text-primary);line-height:1.6}.summary-line{padding:4px 0;border-bottom:.5px solid var(--border-light)}.summary-line:last-child{border-bottom:none}.summary-nums{font-weight:600;color:var(--primary)}.summary-implant-detail,.summary-prototype-detail{font-size:12px;color:var(--text-secondary);padding-left:12px}.summary-totals{margin-top:8px;padding-top:8px;font-size:13px;color:var(--text-secondary)}.summary-empty{color:var(--text-tertiary);font-style:italic;text-align:center;padding:8px 0}.actions{display:flex;gap:12px;padding:20px}.btn{flex:1;padding:14px 20px;font-size:16px;font-weight:600;font-family:var(--font);border-radius:var(--radius);border:none;cursor:pointer;transition:background var(--transition),transform var(--transition);touch-action:manipulation;-webkit-tap-highlight-color:transparent;text-align:center}.btn:active{transform:scale(.97)}.btn--secondary{background:#0000000a;color:var(--text-secondary)}@media(hover:hover){.btn--secondary:hover{background:#00000014}}.btn--primary{background:var(--primary);color:#fff}@media(hover:hover){.btn--primary:hover{background:var(--primary-hover)}}@media(max-width:600px){.actions{flex-direction:column;padding:16px}.btn{min-height:48px}}.toast{position:fixed;top:calc(140px + env(safe-area-inset-top,0px));left:50%;transform:translate(-50%) translateY(-20px);background:#1d1d1fe0;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);color:#fff;padding:12px 24px;border-radius:100px;font-size:14px;font-weight:500;opacity:0;transition:opacity .4s var(--ease),transform .4s var(--ease);pointer-events:none;z-index:1999;white-space:nowrap}.toast.toast--header{position:absolute;top:100%;margin-top:8px;z-index:10}.toast.visible{opacity:1;transform:translate(-50%) translateY(0)}.toast.error{background:#323234eb;white-space:normal;max-width:88vw;text-align:center;line-height:1.4}@media(max-width:600px){.toast{top:calc(116px + env(safe-area-inset-top,0px))}}.toast.toast--sticky{pointer-events:auto;touch-action:none;cursor:pointer;width:calc(100vw - 32px);max-width:420px;white-space:normal;text-align:center;line-height:1.4;padding:14px 44px}.toast .toast-close{position:absolute;top:8px;right:8px;width:32px;height:32px;padding:0;border:none;border-radius:50%;background:#ffffff24;color:#fff;font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-tap-highlight-color:transparent}.toast .toast-close:hover{background:#ffffff3d}.toast a{color:#fff;font-weight:600;text-decoration:underline;white-space:nowrap;-webkit-tap-highlight-color:transparent}.shade-section{padding:12px 20px;border-top:.5px solid var(--border-light);border-bottom:.5px solid var(--border-light);transition:box-shadow .8s ease-out}.shade-label{font-size:15px;color:var(--text-primary);font-weight:400;margin-bottom:10px}.shade-label .required{color:var(--danger-soft);margin-left:2px}.shade-chips{display:flex;flex-wrap:wrap;gap:8px}.shade-chip{padding:8px 14px;border-radius:100px;border:1.5px solid #e0e0e5;background:#f8f8fa;font-size:14px;font-weight:500;color:var(--text-primary);cursor:pointer;transition:background var(--transition),color var(--transition)}.shade-chip.active{background:var(--primary);color:#fff;border-color:var(--primary)}.shade-chip--other.active{background:#ff9500;border-color:#ff9500}.shade-details-wrap{display:grid;grid-template-rows:0fr;max-height:0;overflow:hidden;transition:grid-template-rows .35s cubic-bezier(.4,0,.2,1),max-height .35s cubic-bezier(.4,0,.2,1),opacity .3s ease;opacity:0}.shade-details-wrap>.shade-details-panels{overflow:hidden;min-height:0}.shade-details-wrap.visible{grid-template-rows:1fr;max-height:800px;opacity:1;margin-top:10px}.shade-details-panels{display:flex;flex-direction:column;gap:12px}.shade-panel-label{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:6px}.shade-details-text textarea{width:100%;box-sizing:border-box;overflow:hidden;min-height:72px;font-size:16px;font-family:var(--font);color:var(--text-primary);border:1px solid rgba(0,0,0,.06);border-radius:12px;background:#fff;padding:10px 14px;outline:none;resize:none;line-height:1.47;box-shadow:0 1px 4px #0000000a;transition:border-color .2s ease,box-shadow .2s ease}.shade-details-text textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #0071e31a,0 1px 4px #0000000a}.shade-details-text textarea::placeholder{color:var(--text-tertiary)}.shade-details-draw{display:flex;flex-direction:column;border-radius:14px;overflow:hidden;border:1px solid rgba(0,0,0,.06);background:#fff;box-shadow:0 1px 4px #0000000d}.shade-details-draw>.shade-panel-label{order:0;margin:0;padding:10px 14px 0}#shade-canvas{order:1}.canvas-toolbar{order:2}#shade-canvas{width:100%;height:220px;background:#fff;touch-action:none;cursor:crosshair;display:block}.canvas-toolbar{display:flex;align-items:center;justify-content:center;gap:4px;padding:10px 6px;background:#00000006;border-top:.5px solid rgba(0,0,0,.06);flex-wrap:nowrap}.canvas-tool{width:28px;height:28px;border-radius:7px;border:none;background:transparent;color:#636366;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:all .2s var(--ease)}.canvas-tool:active{transform:scale(.9)}.canvas-tool.active{background:var(--primary);color:#fff;box-shadow:0 1px 3px #0071e340}.canvas-color{width:18px;height:18px;border-radius:50%;border:none;cursor:pointer;flex-shrink:0;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:transform .2s var(--ease),box-shadow .2s var(--ease)}.canvas-color:active{transform:scale(.88)}.canvas-color.active{transform:scale(1.25);box-shadow:0 0 0 2px #fff,0 0 0 3.5px currentColor}.canvas-color[data-color="#1d1d1f"].active{box-shadow:0 0 0 2px #fff,0 0 0 3.5px #1d1d1f}.canvas-color[data-color="#ff3b30"].active{box-shadow:0 0 0 2px #fff,0 0 0 3.5px #ff3b30}.canvas-color[data-color="#0071e3"].active{box-shadow:0 0 0 2px #fff,0 0 0 3.5px #0071e3}.canvas-color[data-color="#34c759"].active{box-shadow:0 0 0 2px #fff,0 0 0 3.5px #34c759}.canvas-color[data-color="#ff9500"].active{box-shadow:0 0 0 2px #fff,0 0 0 3.5px #ff9500}.canvas-separator{display:none}.canvas-tool[aria-label=Очистить]{order:-1;margin-right:auto}.canvas-tool[aria-label=Отменить]{order:99;margin-left:auto}.canvas-color+.canvas-color{margin-left:3px}.canvas-thickness{width:44px;flex-shrink:0;-webkit-appearance:none;appearance:none;height:3px;background:#0000001a;border-radius:2px;outline:none}.canvas-thickness::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:#fff;cursor:pointer;box-shadow:0 .5px 4px #0003,0 0 0 .5px #0000000a}.canvas-thickness::-moz-range-track{background:transparent;height:3px;border-radius:2px;border:none}.canvas-thickness::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#fff;cursor:pointer;border:none;box-shadow:0 .5px 4px #0003,0 0 0 .5px #0000000a}.canvas-thickness::-moz-focus-outer{border:none}.extras-section{border-bottom:.5px solid var(--border-light)}.extras-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;padding:7px 12px;border-radius:8px;border:1.5px solid #e0e0e5;background:#f8f8fa;font-size:14px;font-family:var(--font);color:var(--text-secondary);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:border-color .25s ease,background .25s ease,box-shadow .25s ease}.extras-trigger.open{border-color:var(--primary);background:#fff;box-shadow:0 0 0 3px var(--primary-light)}.extras-trigger.has-selection{color:var(--text-primary);border-color:var(--primary);background:#fff}.extras-trigger svg{transition:transform .3s cubic-bezier(.4,0,.2,1);flex-shrink:0}.extras-trigger.open svg{transform:rotate(180deg)}.extras-dropdown{overflow:hidden;max-height:0;opacity:0;padding:0 16px;transition:max-height .35s cubic-bezier(.4,0,.2,1),opacity .25s ease,padding .35s cubic-bezier(.4,0,.2,1)}.extras-dropdown.visible{max-height:600px;opacity:1;padding:2px 16px 8px}.extras-item{display:flex;align-items:center;gap:10px;padding:9px 4px;font-size:14px;line-height:1.3;color:var(--text-primary);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:8px;transition:background .15s ease}.extras-item:active{background:var(--primary-light)}.extras-check{width:14px;height:14px;min-width:14px;border-radius:50%;border:2px solid var(--border);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:background .2s cubic-bezier(.4,0,.2,1),border-color .2s cubic-bezier(.4,0,.2,1)}.extras-item.checked .extras-check{background:#fff;border-color:var(--primary)}.extras-item.checked .extras-check:after{content:"";width:8px;height:8px;border-radius:50%;background:var(--primary)}.extras-item.checked{color:var(--primary);font-weight:500}.jaw-selector{display:flex;gap:8px;padding:0 0 8px 24px}.jaw-chip{flex:1;padding:7px 10px;font-size:13px;border-radius:8px;border:1.5px solid var(--border-light);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .2s ease,border-color .2s ease,color .2s ease}.jaw-chip.active{border-color:var(--primary);background:var(--primary-light);color:var(--primary);font-weight:600}.jaw-chip:active{transform:scale(.97)}.garland-selector{padding:4px 0 8px 24px}.garland-teeth{display:flex;flex-wrap:wrap;gap:6px}.garland-chip{min-width:36px;padding:5px 8px;font-size:13px;font-weight:500;border-radius:8px;border:1.5px solid var(--border-light);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;text-align:center;-webkit-tap-highlight-color:transparent;transition:background .2s ease,border-color .2s ease,color .2s ease}.garland-chip.active{border-color:var(--primary);background:var(--primary-light);color:var(--primary);font-weight:600}.garland-chip:active{transform:scale(.95)}.garland-actions{margin-bottom:6px}.garland-select-all{font-size:13px;font-weight:500;color:var(--primary);background:none;border:none;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent}.garland-select-all:active{opacity:.6}.garland-hint{font-size:12px;color:var(--text-secondary);padding:4px 0}.extras-item-wrap.disabled .extras-item{opacity:.4}.confirm-overlay{display:none;position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2000}.confirm-overlay.visible{display:block}.confirm-modal{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--bg);border-radius:20px 20px 0 0;padding:0 0 env(safe-area-inset-bottom,0);z-index:2001;max-height:85vh;overflow:hidden;box-shadow:0 -8px 40px #0003}.confirm-modal.visible{display:flex;flex-direction:column}.confirm-title{font-size:18px;font-weight:700;padding:18px 20px 14px;text-align:center;color:var(--text-primary);border-bottom:1px solid var(--border);flex-shrink:0;position:relative}.confirm-title:before{content:"";display:block;width:36px;height:4px;background:#d0d0d5;border-radius:2px;margin:0 auto 12px}.confirm-body{flex:1;overflow-y:auto;padding:8px 16px 16px}.confirm-actions{display:flex;gap:10px;padding:12px 16px 16px;flex-shrink:0;border-top:1px solid var(--border);background:var(--bg)}.confirm-actions .btn{flex:1;padding:14px 0;font-size:16px;font-weight:600;border-radius:12px}.confirm-invalid-work-warning{background:#fff5f5;border:1px solid #d42a2a;border-radius:8px;padding:12px 16px;margin:12px 0;color:#7a1010;font-size:14px}.confirm-invalid-work-warning .confirm-warning-heading{font-weight:600;margin:0 0 8px}.confirm-invalid-work-warning ul{margin:8px 0;padding-left:20px}.confirm-invalid-work-warning li{margin:2px 0}.confirm-invalid-work-warning .confirm-warning-action{margin:8px 0 0;font-size:13px;color:#5a0a0a}.confirm-actions--with-warning .btn--danger{background:transparent;color:#d42a2a;border:1px solid #d42a2a}@media(hover:hover){.confirm-actions--with-warning .btn--danger:hover{background:#d42a2a14}}.cm-card-prototype{font-size:12px;color:var(--text-secondary);padding-left:12px;margin-top:4px}.cm-section{margin-bottom:12px}.cm-section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-secondary);padding:10px 4px 6px}.cm-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.cm-info-item{background:var(--surface);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}.cm-info-label{font-size:11px;color:var(--text-secondary);font-weight:500}.cm-info-value{font-size:14px;font-weight:600;color:var(--text-primary);word-break:break-word}.cm-card{background:var(--surface);border-radius:12px;padding:12px;margin-bottom:8px;border:1px solid var(--border)}.cm-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.cm-card-title{font-size:15px;font-weight:700;color:var(--text-primary)}.cm-card-badge{background:var(--primary);color:#fff;font-size:12px;font-weight:700;min-width:22px;height:22px;border-radius:11px;display:flex;align-items:center;justify-content:center;padding:0 6px}.cm-card-mat{font-size:13px;color:var(--primary);font-weight:600;margin-bottom:6px;padding:4px 8px;background:#007aff14;border-radius:6px;display:inline-block}.cm-card-sub{font-size:13px;color:var(--text-secondary);padding:3px 0}.cm-card-details{margin-top:6px}.cm-detail-row{display:flex;align-items:center;gap:8px;padding:5px 0;border-bottom:1px solid rgba(0,0,0,.04);font-size:13px;flex-wrap:wrap}.cm-detail-row:last-child{border-bottom:none}.cm-tooth-num{font-weight:700;font-size:14px;color:var(--text-primary);min-width:24px;text-align:center;background:#0000000a;border-radius:5px;padding:2px 5px}.cm-role{font-size:12px;font-weight:600;padding:2px 8px;border-radius:4px}.cm-role--support{background:#e8f5e9;color:#2e7d32}.cm-role--gap{background:#fff3e0;color:#e65100}.cm-role--implant{background:#e3f2fd;color:#1565c0}.cm-detail-mat{font-size:12px;color:var(--text-secondary)}.cm-detail-impl{font-size:12px;color:#6d4c9f;font-weight:500}.cm-card-polishing{margin-top:6px;padding:6px 8px;background:#fce4ec;border-radius:6px;font-size:12px;color:#ad1457;font-weight:500}.cm-card-teeth{font-size:14px;color:var(--text-primary);font-weight:500;padding:4px 0}.cm-notes{background:var(--surface);border-radius:10px;padding:10px 12px;font-size:14px;color:var(--text-primary);white-space:pre-wrap;word-break:break-word;line-height:1.5}@media(min-width:768px){.confirm-modal{inset:50% auto auto 50%;transform:translate(-50%,-50%);max-width:700px;width:90%;max-height:80vh;border-radius:20px;box-shadow:0 24px 80px #00000040}.confirm-title:before{display:none}}.dt-dropdown{position:fixed;z-index:500;min-width:200px;padding:4px 0;list-style:none;background:#f6f6f6d1;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border:.5px solid rgba(0,0,0,.12);border-radius:6px;box-shadow:0 10px 30px #0000002e,0 0 0 .5px #00000014;font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-size:13px;line-height:1;-webkit-font-smoothing:antialiased;color:#000000d9;transform-origin:top center;opacity:0;transform:scale(.96);pointer-events:none;transition:none}.dt-dropdown.visible{opacity:1;transform:scale(1);pointer-events:auto;animation:dt-dropdown-in .15s ease-out}@keyframes dt-dropdown-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.dt-dropdown-item{display:flex;align-items:center;justify-content:center;height:22px;padding:0 12px;margin:0 5px;border-radius:4px;cursor:default;user-select:none;white-space:nowrap;position:relative;font-variant-numeric:tabular-nums}@media(hover:hover){.dt-dropdown-item:hover{background:#0058d0;color:#fff}}.dt-dropdown-item.selected:before{content:"✓";position:absolute;left:8px;font-size:13px;font-weight:600}@media(hover:hover){.dt-dropdown-item.selected:hover:before{color:#fff}}@media print{body{background:#fff}.container{padding:10px;max-width:none}.card{box-shadow:none;border:1px solid #ddd;break-inside:avoid}.toolbar,.hint-bar,.clear-formula-btn,.add-work-btn,.actions,.toast,.bottom-sheet,.bottom-sheet-backdrop,.popover,.dt-dropdown,.header-helix{display:none!important}.btn{display:none}.brand-accent{-webkit-text-fill-color:#1a1a1a;background:none;animation:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.welcome-hero{text-align:center;padding:0 24px;margin:-12px 0 20px}.welcome-hero-text{font-size:17px;font-weight:400;line-height:1.5;letter-spacing:-.01em;color:#00000073;margin:0}.welcome-cards{display:flex;flex-direction:column;gap:10px}.welcome-card{display:flex;align-items:center;gap:14px;background:var(--surface);border-radius:var(--radius-lg, 16px);box-shadow:var(--shadow, 0 1px 4px rgba(0,0,0,.06));padding:18px 16px;text-decoration:none;color:var(--text-primary);-webkit-tap-highlight-color:transparent;transition:transform .15s,box-shadow .15s}.welcome-card:active{transform:scale(.97);box-shadow:0 0 #0000}.welcome-card-icon-wrap{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.welcome-card-icon--scan{background:#0071e31a;color:var(--primary)}.welcome-card-icon--impression{background:#34c7591a;color:#34c759}.welcome-card-icon--correction{background:#ff95001a;color:#ff9500}.welcome-card-icon--pickup{background:#5856d61a;color:#5856d6}.welcome-card-icon--courier{background:#ff3b301a;color:#ff3b30}.welcome-card--disabled{opacity:.45;pointer-events:none;cursor:default}.welcome-card-text{flex:1;min-width:0}.welcome-card-title{font-size:17px;font-weight:600;letter-spacing:-.01em;margin-bottom:2px}.welcome-card-desc{font-size:15px;color:var(--text-secondary);font-weight:400}.welcome-card-arrow{color:var(--text-tertiary);flex-shrink:0}.attachments-body{padding:12px 16px 16px}.attachments-row{display:flex;gap:8px;margin-bottom:10px;align-items:stretch}.attachments-dropzone{flex:1;display:flex;flex-direction:column;justify-content:center;gap:2px;padding:10px 14px;border:1.5px dashed var(--border);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:border-color .2s,background .2s;min-width:0}.attachments-dropzone>svg{display:none}.attachments-dropzone:active{background:var(--primary-light);border-color:var(--primary)}.attachments-hint{font-size:13px;line-height:1.3}.attachments-hint--sub{font-size:11px;color:var(--text-tertiary)}.attachments-btn-camera{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:10px 16px;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);font-size:12px;font-weight:500;font-family:var(--font);color:var(--text-secondary);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:border-color .2s,background .2s;flex-shrink:0}.attachments-btn-camera:active{background:var(--primary-light);border-color:var(--primary)}.attachments-list{display:flex;flex-direction:column;gap:6px}.attachment-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg);border-radius:10px;border:1px solid var(--border-light)}.attachment-thumb{width:40px;height:40px;border-radius:6px;object-fit:cover;flex-shrink:0}.attachment-icon{font-size:24px;flex-shrink:0;width:40px;text-align:center;line-height:1}.attachment-info{flex:1;min-width:0}.attachment-name{font-size:14px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attachment-size{font-size:12px;color:var(--text-secondary);margin-top:2px}.attachment-remove{flex-shrink:0;width:28px;height:28px;border-radius:50%;border:none;background:#0000000f;color:var(--text-secondary);font-size:18px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent;transition:background .15s}.attachment-remove:active{background:#ff3b3026;color:var(--danger)}.attachments-progress{margin-top:10px;height:4px;background:var(--border-light);border-radius:2px;overflow:hidden}.attachments-progress-bar{height:100%;width:0%;background:var(--primary);border-radius:2px;transition:width .3s ease}.correction-mode .toolbar-btn[data-mode=crown-implant],.correction-mode .toolbar-btn[data-mode=veneer],.correction-mode .toolbar-btn[data-mode=inlay],.correction-mode .toolbar-btn[data-mode=missing],.correction-mode .toolbar-btn[data-mode=bar],.correction-mode .toolbar-btn[data-mode=transfer]{display:none}.correction-mode .work-groups-container,.correction-mode .shade-section,.correction-mode .implant-panel,.correction-mode #bar-panel-container,.correction-mode .polishing-section,.correction-mode .extras-section{display:none!important}.upload-modal-overlay{position:fixed;inset:0;background:#00000080;z-index:10000;display:flex;align-items:center;justify-content:center;padding:20px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.upload-modal{background:var(--surface);border-radius:var(--radius-lg);padding:32px 24px;max-width:360px;width:100%;text-align:center;box-shadow:0 20px 60px #0000004d}.upload-modal-icon{margin-bottom:16px}@keyframes upload-spin{to{transform:rotate(360deg)}}.upload-spinner{animation:upload-spin 1.2s linear infinite;transform-origin:center}.upload-modal-title{font-size:18px;font-weight:600;color:var(--text-primary);margin-bottom:6px}.upload-modal-subtitle{font-size:14px;color:var(--text-secondary);margin-bottom:16px}.upload-modal-progress{height:6px;background:var(--border-light);border-radius:3px;overflow:hidden;margin-bottom:12px}.upload-modal-progress-bar{height:100%;width:0%;background:var(--primary);border-radius:3px;transition:width .3s ease}.upload-modal-status{font-size:13px;color:var(--text-secondary);min-height:20px;margin-bottom:8px}.upload-modal-files{text-align:left;margin-bottom:8px;max-height:240px;overflow-y:auto;-webkit-overflow-scrolling:touch;scroll-behavior:smooth}.upload-file-row{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:13px;color:var(--text-secondary);border-bottom:1px solid var(--border-light)}.upload-file-row:last-child{border-bottom:none}.upload-file-icon{flex-shrink:0;width:18px;text-align:center;font-size:14px}.upload-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-file-row--done .upload-file-name{color:var(--text-primary)}.upload-file-row--error .upload-file-name{color:var(--danger)}.upload-file-row--active .upload-file-name{color:var(--primary);font-weight:500}.upload-file-name-wrap{flex:1;min-width:0;overflow:hidden}.upload-file-progress{height:3px;background:var(--border-light);border-radius:2px;margin-top:3px;overflow:hidden}.upload-file-progress-fill{height:100%;background:var(--primary);border-radius:2px;width:0%;transition:width .3s ease}.upload-file-progress-fill--indeterminate{width:40%!important;animation:indeterminate-progress 1.5s ease-in-out infinite}@keyframes indeterminate-progress{0%{transform:translate(-100%)}to{transform:translate(350%)}}.upload-file-skip{flex-shrink:0;padding:8px 12px;font-size:12px;color:var(--text-secondary);background:var(--bg);border:1px solid var(--border);border-radius:4px;cursor:pointer;-webkit-tap-highlight-color:transparent;font-family:var(--font);margin-left:4px}.upload-file-skip:active{opacity:.7}.upload-modal-cancel-always{margin-top:12px;width:100%}.upload-modal-actions{display:flex;flex-direction:column;gap:8px;margin-top:16px}.upload-modal-btn{padding:14px 20px;border-radius:var(--radius-sm);border:none;font-size:15px;font-weight:500;font-family:var(--font);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:opacity .15s}.upload-modal-btn:active{opacity:.7}.upload-modal-btn--primary{background:var(--primary);color:#fff}.upload-modal-btn--secondary{background:var(--bg);color:var(--text-primary);border:1px solid var(--border)}.upload-modal-btn--danger{background:transparent;color:var(--danger)}.upload-modal-btn--success{background:#34c759;color:#fff;width:100%;margin-top:16px}.upload-back-dialog-overlay{position:fixed;inset:0;background:#0009;z-index:10001;display:flex;align-items:center;justify-content:center;padding:20px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.upload-back-dialog{background:var(--surface);border-radius:var(--radius-lg);padding:28px 24px;max-width:320px;width:100%;text-align:center;box-shadow:0 20px 60px #0006}.upload-back-dialog-icon{font-size:36px;margin-bottom:12px}.upload-back-dialog-title{font-weight:600;font-size:17px;color:var(--text-primary);margin-bottom:8px}.upload-back-dialog-text{font-size:14px;color:var(--text-secondary);line-height:1.4;margin-bottom:20px}.upload-back-dialog-buttons{display:flex;flex-direction:column;gap:10px}.pending-order-banner{margin:0 20px 16px;padding:18px 20px;background:var(--surface);border:1px solid var(--border-light);border-left:3px solid var(--warning);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.pending-order-title{display:flex;align-items:center;gap:9px;font-size:16px;font-weight:600;letter-spacing:-.01em;color:var(--text-primary);margin-bottom:8px}.pending-order-title:before{content:"";flex:0 0 auto;width:9px;height:9px;border-radius:50%;background:var(--warning)}.pending-order-patient{font-size:13px;color:var(--text-tertiary);margin-bottom:10px}.pending-order-subtitle{font-size:14px;line-height:1.45;color:var(--text-secondary);margin-bottom:16px}.pending-order-actions{display:flex;flex-direction:column;gap:8px}.pending-order-btn{padding:14px 16px;border-radius:var(--radius-sm);border:none;font-size:15px;font-weight:500;font-family:var(--font);cursor:pointer;transition:opacity var(--transition),background var(--transition);-webkit-tap-highlight-color:transparent}.pending-order-btn--primary{background:var(--primary);color:#fff}.pending-order-btn--primary:hover{background:var(--primary-hover)}.pending-order-btn--secondary{background:var(--surface);color:var(--text-primary);border:1px solid var(--border)}.pending-order-btn--secondary:hover{background:var(--bg)}.pending-order-btn--danger{background:transparent;color:var(--danger);font-weight:400;font-size:14px}.pending-order-btn--danger:hover{background:var(--danger-bg)}.pending-order-btn:disabled{opacity:.5;cursor:default;pointer-events:none}.cascade{opacity:0;transform:translateY(16px);animation:cascadeIn .5s cubic-bezier(.25,.1,.25,1) forwards;animation-play-state:paused}html.auth-ready .cascade{animation-play-state:running}@keyframes cascadeIn{to{opacity:1;transform:translateY(0)}}.welcome-card--disabled.cascade{animation-name:cascadeInDisabled}@keyframes cascadeInDisabled{to{opacity:.45;transform:translateY(0)}}.c1{animation-delay:0s}.c2{animation-delay:.08s}.c3{animation-delay:.16s}.c4{animation-delay:.24s}.c5{animation-delay:.32s}.c6{animation-delay:.4s}.c7{animation-delay:.48s}.c8{animation-delay:.56s}.c9{animation-delay:.64s}.c10{animation-delay:.72s}.c11{animation-delay:.8s}.c12{animation-delay:.88s}.welcome-card,.order-card,.register-type-card,.clinic-item,.doctor-item{transition:transform .2s var(--ease),box-shadow .25s var(--ease)}@media(hover:hover){.welcome-card:not(.welcome-card--disabled):hover,.order-card:hover,.register-type-card:hover{transform:translateY(-3px);box-shadow:0 4px 12px #00000014,0 2px 4px #0000000a}}.welcome-card:not(.welcome-card--disabled):active,.order-card:active,.register-type-card:active{transform:translateY(-1px) scale(.99);transition-duration:.1s}.welcome-card-arrow,.register-type-arrow{transition:transform .2s var(--ease),opacity .2s var(--ease)}@media(hover:hover){.welcome-card:not(.welcome-card--disabled):hover .welcome-card-arrow,.register-type-card:hover .register-type-arrow{transform:translate(2px);opacity:.7}}.auth-btn{transition:transform .15s var(--ease),box-shadow .2s var(--ease),background .2s var(--ease)}@media(hover:hover){.auth-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #0071e340}}.auth-btn:active:not(:disabled){transform:translateY(0) scale(.98);box-shadow:none}.auth-back,.header-back,.header-profile{transition:background .2s var(--ease),transform .15s var(--ease)}@media(hover:hover){.auth-back:hover,.header-back:hover{background:#0071e30f;transform:translate(-2px)}.header-profile:hover{background:#0000000a}}.auth-back:active,.header-back:active,.header-profile:active{transform:scale(.95)}.auth-card input:not([disabled]),.auth-card select{transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}.auth-card input:not([disabled]):focus,.auth-card select:focus{box-shadow:0 0 0 3px #0071e31a}.page-transition-overlay{position:fixed;inset:0;background:var(--bg);z-index:9999;opacity:0;pointer-events:none;transition:opacity .2s var(--ease)}.page-transition-overlay.active{opacity:1;pointer-events:all}@media(prefers-reduced-motion:reduce){.cascade{opacity:1;transform:none;animation:none}.welcome-card--disabled.cascade{opacity:.45;animation:none}.page-transition-overlay{transition:none}}.popover-prototype-row{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:9px;cursor:pointer;transition:background .15s ease;user-select:none}@media(hover:hover){.popover-prototype-row:hover{background:#0000000d}}.popover-prototype-row:active{background:#0000001a}.popover-checkbox{width:18px;height:18px;min-width:18px;border-radius:50%;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;transition:background .2s cubic-bezier(.4,0,.2,1),border-color .2s cubic-bezier(.4,0,.2,1);flex-shrink:0}.popover-prototype-row.checked .popover-checkbox,.bs-prototype-row.checked .popover-checkbox{background:var(--text-primary);border-color:var(--text-primary)}.popover-prototype-row.checked .popover-checkbox:after,.bs-prototype-row.checked .popover-checkbox:after{content:"";width:9px;height:5px;border-left:2px solid white;border-bottom:2px solid white;transform:rotate(-45deg) translate(1px,-1px)}.popover-prototype-label{flex:1;font-size:15px;color:var(--text-primary)}.info-btn{width:22px;height:22px;min-width:22px;border-radius:50%;background:var(--bg-secondary);border:none;cursor:pointer;color:var(--text-secondary);font-size:13px;font-weight:600;font-family:var(--font);display:flex;align-items:center;justify-content:center;transition:background .15s ease,color .15s ease;padding:0;line-height:1}@media(hover:hover){.info-btn:hover{background:var(--border);color:var(--text-primary)}}.popover-divider{height:1px;background:var(--border-light);margin:4px 8px}.popover-item-row{display:flex;align-items:center;gap:4px;padding-right:8px;border-radius:9px;transition:background .15s ease}@media(hover:hover){.popover-item-row:hover{background:#0000000d}}.popover-item-row .popover-item{flex:1;background:transparent}.popover-item-row .popover-item:hover{background:transparent}.popover-item-row .popover-item:active{background:#0000000d}.bs-prototype-row{display:flex;align-items:center;gap:10px;padding:12px 16px;cursor:pointer;user-select:none;transition:background .15s ease}.bs-prototype-row:active{background:#0000000d}.bs-divider{height:1px;background:var(--border-light);margin:0 12px}.bs-item-row{position:relative}.bs-item-row .bottom-sheet-item{width:100%;padding-right:30px}.bs-item-row .info-btn{position:absolute;top:50%;right:6px;transform:translateY(-50%);background:#0000000f}.info-backdrop{display:none;position:fixed;inset:0;background:#0006;z-index:300;opacity:0;transition:opacity .25s ease;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.info-backdrop.visible{display:flex;opacity:1;align-items:center;justify-content:center;padding:20px}.info-modal{background:var(--surface);border-radius:18px;max-width:480px;width:100%;max-height:85vh;overflow-y:auto;padding:24px 24px 28px;box-shadow:0 12px 48px #00000040;transform:scale(.92);transition:transform .25s cubic-bezier(.4,0,.2,1);position:relative}.info-backdrop.visible .info-modal{transform:scale(1)}.info-close{position:absolute;top:14px;right:14px;width:32px;height:32px;border-radius:50%;background:var(--bg-secondary);border:none;cursor:pointer;color:var(--text-secondary);font-size:18px;font-weight:400;display:flex;align-items:center;justify-content:center;transition:background .15s ease;line-height:1;padding:0}.info-close:hover{background:var(--border);color:var(--text-primary)}.info-modal h2{margin:0 0 16px;font-size:20px;font-weight:600;color:var(--text-primary);padding-right:36px}.info-block{margin-bottom:18px}.info-block:last-child{margin-bottom:0}.info-block h3{margin:0 0 6px;font-size:15px;font-weight:600;color:var(--text-primary)}.info-block p{margin:0;font-size:14px;line-height:1.5;color:var(--text-secondary)}.info-block .accent{color:var(--text-primary);font-weight:500}.tooth--has-prototype:before{content:"P";position:absolute;top:-2px;left:-2px;width:12px;height:12px;background:#fff;color:#1d1d1f;font-size:9px;font-weight:700;line-height:12px;text-align:center;border-radius:50%;z-index:5}@media(max-width:600px){.tooth--has-prototype:before{width:16px;height:16px;font-size:12px;line-height:16px;top:-3px;left:-3px}}.tooth--has-prototype,.info-btn,.popover-prototype-row,.bs-prototype-row,.popover-item-row,.bs-item-row{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.card--formula .card-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.video-hints-list{list-style:decimal;padding-left:24px;margin:0}.video-hints-list li{margin-bottom:12px;cursor:pointer;color:var(--text-primary);font-size:15px;line-height:1.5;transition:color .15s ease}@media(hover:hover){.video-hints-list li:hover{color:var(--primary);text-decoration:underline}}.video-hints-list li:active{color:var(--primary)}.video-hints-empty,.video-hints-error{font-size:14px;color:var(--text-secondary);text-align:center;margin:24px 0}.video-hints-back-btn{background:none;border:none;color:var(--primary);cursor:pointer;font-size:15px;padding:0;margin-bottom:12px}.video-hints-back-btn:hover{text-decoration:underline}.video-hints-player{width:100%;max-height:60vh;border-radius:12px;background:#000}.info-modal--video-player{padding:0;max-width:none;width:auto;overflow:visible}.info-modal--video-player #video-hints-player-view{padding:0;position:relative}.info-modal--video-player .video-hints-player{aspect-ratio:443 / 960;height:80vh;width:auto;max-width:90vw;max-height:none;min-width:280px;display:block;border-radius:18px;margin:0}.info-modal--video-player .info-close{top:0;right:-44px;z-index:10}.info-modal--video-player .video-hints-error{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);margin:0;padding:12px 20px;background:#ffffffeb;border-radius:12px;text-align:center;z-index:5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}

/*# sourceMappingURL=dental-order.css.map */
