*{box-sizing:border-box;margin:0;padding:0}html{overflow-x:hidden}body{overflow-x:hidden;width:100%;max-width:100%;position:relative}#root{overflow-x:hidden;width:100%;max-width:100%}:root{--black: #000;--white: #fff;--gray-50: #fafafa;--gray-100: #f5f5f5;--gray-200: #e5e5e5;--gray-300: #d4d4d4;--gray-400: #a3a3a3;--gray-500: #737373;--gray-600: #525252;--gray-700: #404040;--gray-800: #262626;--gray-900: #171717;--accent: #000;--accent-hover: #262626;--danger: #dc2626;--success: #16a34a;--warning: #f59e0b}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--white);color:var(--gray-900);line-height:1.5;-webkit-font-smoothing:antialiased}.app{max-width:1200px;margin:0 auto;padding:0 1.5rem;overflow-x:hidden}.loading-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;font-size:.875rem;color:var(--gray-500);letter-spacing:.05em;text-transform:uppercase}.loading{text-align:center;padding:3rem;color:var(--gray-500);font-size:.875rem}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:url(https://besaitung-neuss.de/images/platz-asche.jpeg) center center / cover no-repeat fixed}.auth-card{background:var(--white);padding:3rem;width:100%;max-width:420px}.auth-card h1{font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--black)}.auth-subtitle{display:none}.auth-tabs{display:flex;gap:2rem;margin-bottom:2rem}.auth-tab{padding:0;border:none;background:none;font-size:.875rem;font-weight:500;color:var(--gray-400);cursor:pointer;transition:color .2s;position:relative}.auth-tab:hover{color:var(--gray-600)}.auth-tab.active{color:var(--black)}.auth-tab.active:after{content:"";position:absolute;bottom:-4px;left:0;right:0;height:1px;background:var(--black)}.auth-hint{font-size:.875rem;color:var(--gray-500);margin-bottom:1.5rem;line-height:1.6}.password-input-wrapper{position:relative}.password-input-wrapper input{padding-right:3rem}.password-toggle{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);background:none;border:none;padding:.25rem;cursor:pointer;color:var(--gray-400);transition:color .2s;display:flex;align-items:center}.password-toggle:hover{color:var(--black)}.forgot-password{text-align:right;margin-bottom:1.5rem}.forgot-password a{font-size:.8rem;color:var(--gray-500);text-decoration:none;transition:color .2s}.forgot-password a:hover{color:var(--black)}.auth-footer{margin-top:2rem;padding-top:2rem;border-top:1px solid var(--gray-200);text-align:center}.auth-footer p{color:var(--gray-500);font-size:.875rem;margin-bottom:1rem}.success-icon{width:3rem;height:3rem;background:var(--gray-100);color:var(--black);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.25rem;margin:0 auto 1.5rem}.alert{padding:1rem 1.25rem;margin-bottom:1.5rem;font-size:.875rem;border-left:2px solid}.alert-error{background:#fef2f2;border-color:var(--danger);color:#991b1b}.alert-success{background:#f0fdf4;border-color:var(--success);color:#166534}.header{background:var(--black);color:var(--white);padding:1rem 1.5rem;margin:0 -1.5rem;display:flex;justify-content:space-between;align-items:center}.header h1{font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;display:flex;align-items:center;gap:.75rem}.header-user{font-size:.75rem;opacity:.7;font-weight:400;letter-spacing:.02em}.header-actions{display:flex;gap:.75rem}.burger-btn{background:none;border:none;cursor:pointer;padding:.5rem;position:relative}.burger-icon{display:flex;flex-direction:column;gap:4px;width:20px}.burger-icon span{display:block;height:1.5px;background:var(--white);transition:all .3s}.burger-icon.open span:nth-child(1){transform:rotate(45deg) translate(4px,4px)}.burger-icon.open span:nth-child(2){opacity:0}.burger-icon.open span:nth-child(3){transform:rotate(-45deg) translate(4px,-4px)}.burger-badge{position:absolute;top:0;right:0;background:var(--danger);color:var(--white);font-size:.5625rem;font-weight:700;min-width:16px;height:16px;display:flex;align-items:center;justify-content:center;border-radius:8px}.menu-overlay{position:fixed;inset:0;background:#0006;z-index:90}.slide-menu{position:fixed;top:0;right:-280px;width:280px;height:100%;background:var(--white);z-index:100;transition:right .3s ease;display:flex;flex-direction:column;padding:env(safe-area-inset-top,0) 0 env(safe-area-inset-bottom,0) 0}.slide-menu.open{right:0}.menu-header{padding:1.5rem;border-bottom:1px solid var(--gray-200)}.menu-user{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--gray-500)}.menu-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:1rem 1.5rem;border:none;background:none;font-size:.9375rem;font-weight:500;color:var(--gray-600);cursor:pointer;text-align:left;transition:all .15s}.menu-item:hover{background:var(--gray-50);color:var(--black)}.menu-item.active{color:var(--black);font-weight:600;background:var(--gray-50)}.menu-item .badge{background:var(--danger);color:var(--white);font-size:.6875rem;padding:.125rem .5rem;font-weight:600;border-radius:8px}.menu-divider{height:1px;background:var(--gray-200);margin:.5rem 1.5rem}.menu-logout{color:var(--gray-400);font-size:.8125rem}.page-spacer{display:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.875rem 1.5rem;border:none;font-size:.8125rem;font-weight:500;letter-spacing:.02em;cursor:pointer;transition:all .2s;text-decoration:none}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--black);color:var(--white)}.btn-primary:hover:not(:disabled){background:var(--gray-800)}.btn-danger{background:var(--danger);color:var(--white)}.btn-danger:hover:not(:disabled){background:#b91c1c}.btn-secondary{background:var(--white);color:var(--black);border:1px solid var(--gray-300)}.btn-secondary:hover:not(:disabled){border-color:var(--black)}.btn-sm{padding:.5rem .875rem;font-size:.75rem}.btn-full{width:100%}.btn-close{background:none;border:none;font-size:1.25rem;cursor:pointer;color:var(--gray-400);line-height:1;padding:.25rem}.btn-close:hover{color:var(--black)}.stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1px;background:var(--gray-200);margin:2rem 0}.stat-card{background:var(--white);padding:1.5rem;text-align:center}.stat-card.warning{border-bottom:2px solid var(--warning)}.stat-card.success{border-bottom:2px solid var(--success)}.stat-number{font-size:2.5rem;font-weight:600;color:var(--black);letter-spacing:-.02em}.stat-label{font-size:.6875rem;color:var(--gray-500);text-transform:uppercase;letter-spacing:.08em;margin-top:.25rem}.tabs{display:flex;gap:2rem;margin:2rem 0;border-bottom:1px solid var(--gray-200)}.tab{padding:1rem 0;border:none;background:none;font-size:.875rem;font-weight:500;color:var(--gray-400);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .2s;display:flex;align-items:center;gap:.5rem}.tab:hover{color:var(--gray-600)}.tab.active{color:var(--black);border-bottom-color:var(--black)}.tab .badge{background:var(--black);color:var(--white);font-size:.6875rem;padding:.125rem .5rem;font-weight:600}.card{background:var(--white);border:1px solid var(--gray-200);padding:1.5rem;margin-bottom:1rem}.card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.card-title{font-size:1rem;font-weight:600;letter-spacing:-.01em}.card-subtitle{color:var(--gray-500);font-size:.8125rem;margin-top:.25rem}.card-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--gray-100)}.user-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}.user-card{cursor:pointer;transition:border-color .2s}.user-card:hover{border-color:var(--black)}.user-stats{display:flex;gap:2rem;margin:1.25rem 0}.user-stat{display:flex;flex-direction:column}.user-stat .stat-value{font-size:1.75rem;font-weight:600;color:var(--black);letter-spacing:-.02em}.user-stat .stat-label{font-size:.6875rem;color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em}.user-meta{font-size:.75rem;color:var(--gray-500);margin-top:.5rem}.status-badge{padding:.375rem .75rem;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.status-badge.pending{background:var(--gray-100);color:var(--gray-600)}.status-badge.approved{background:var(--black);color:var(--white)}.status-badge.fresh{background:#f0fdf4;color:#166534}.status-badge.ok{background:#fffbeb;color:#92400e}.status-badge.old{background:#fef2f2;color:#991b1b}.catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.catalog-card{position:relative}.catalog-card.inactive{opacity:.5}.catalog-price{font-size:1.5rem;font-weight:600;color:var(--black);letter-spacing:-.02em}.catalog-props{font-size:.875rem;color:var(--gray-600);margin-bottom:.25rem}.catalog-profile{font-size:.75rem;color:var(--gray-500)}.catalog-stock{font-size:.75rem;color:var(--warning);margin-top:.75rem;font-weight:500}.section-title{font-size:.6875rem;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.1em;margin-bottom:1rem}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.user-section{margin-bottom:3rem}.racket-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1rem}.racket-card{position:relative}.racket-card .status-badge{position:absolute;top:1.5rem;right:1.5rem}.racket-info{display:grid;grid-template-columns:auto 1fr;gap:.25rem 1.5rem;font-size:.875rem;margin-bottom:1.25rem}.racket-info dt{color:var(--gray-500);font-size:.8125rem}.racket-info dd{font-weight:500}.stringing-info{background:var(--gray-50);padding:1rem 1.25rem;margin-bottom:1.25rem}.stringing-info h4{font-size:.6875rem;text-transform:uppercase;letter-spacing:.1em;color:var(--gray-500);margin-bottom:.75rem}.string-detail{font-size:.875rem;margin-bottom:.25rem}.string-detail strong{color:var(--black)}.hours-section{margin:1.25rem 0}.hours-display{display:flex;align-items:baseline;gap:.5rem;margin-bottom:.5rem}.hours-display .number{font-size:2.5rem;font-weight:600;letter-spacing:-.02em}.hours-display .number.fresh{color:#166534}.hours-display .number.ok{color:#92400e}.hours-display .number.old{color:#991b1b}.hours-display .unit{color:var(--gray-500);font-size:.875rem}.progress-bar{height:6px;background:var(--gray-200);overflow:hidden;margin-bottom:.375rem}.progress-fill{height:100%;transition:width .3s ease}.progress-fill.fresh{background:#16a34a}.progress-fill.ok{background:#f59e0b}.progress-fill.old{background:#dc2626}.progress-label{font-size:.75rem;color:var(--gray-500)}.tension-loss{color:var(--gray-400)}.effective-tension{color:var(--gray-500);font-weight:400;font-size:.8125rem}.string-date{margin-top:.5rem;color:var(--gray-500)!important}.empty-stringing{color:var(--gray-400);font-style:italic}.racket-limit-info{text-align:right;font-size:.75rem;color:var(--gray-500);margin-bottom:1.5rem;letter-spacing:.02em}.form-group{margin-bottom:1.25rem}.form-group label{display:block;font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem;color:var(--gray-600)}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.875rem 1rem;border:1px solid var(--gray-300);font-size:1rem;background:var(--white);transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--black)}.form-group input::placeholder{color:var(--gray-400)}.form-hint{display:block;font-size:.75rem;color:var(--gray-500);margin-top:.5rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-row-3{grid-template-columns:1fr 1fr 1fr}.form-row-4{grid-template-columns:1fr 1fr .5fr .5fr}.form-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--gray-200)}.form-section-title{margin:1.5rem 0 1rem;color:var(--gray-600);font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em}.form-checkboxes{display:flex;flex-wrap:wrap;gap:1.5rem;margin:1rem 0}.checkbox-label{display:flex;align-items:center;gap:.5rem;font-size:.875rem;cursor:pointer}.checkbox-label input{width:auto;accent-color:var(--black)}.checkbox-inline{display:flex;align-items:center;gap:.5rem;margin-top:1.5rem}.checkbox-inline input{width:auto;accent-color:var(--black)}.checkbox-field{display:flex;align-items:center;gap:.5rem;padding:.875rem 1rem;border:1px solid var(--gray-300);font-size:1rem;font-weight:400;text-transform:none;letter-spacing:normal;margin:0;cursor:pointer}.checkbox-field input{width:auto;accent-color:var(--black)}.string-quick-select{margin-bottom:1.5rem}.string-quick-select label{display:block;font-size:.6875rem;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.75rem}.quick-select-grid{display:flex;flex-wrap:wrap;gap:.5rem}.quick-select-btn{display:flex;flex-direction:column;align-items:flex-start;padding:.75rem 1rem;border:1px solid var(--gray-200);background:var(--white);cursor:pointer;transition:all .2s;min-width:110px}.quick-select-btn:hover{border-color:var(--black)}.quick-select-btn.selected{border-color:var(--black);background:var(--gray-50)}.qs-brand{font-size:.6875rem;color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em}.qs-model{font-weight:600;font-size:.875rem}.qs-gauge{font-size:.75rem;color:var(--gray-500)}.modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100;padding:1.5rem;overflow:hidden}.modal{background:var(--white);width:100%;max-width:520px;max-height:90vh;overflow-y:auto;overflow-x:hidden;padding:2rem}.modal-large{max-width:700px}.modal h2{font-size:1.25rem;font-weight:600;margin-bottom:.25rem;letter-spacing:-.01em}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--gray-200)}.modal-subtitle{color:var(--gray-500);font-size:.875rem}.modal-footer{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--gray-200);display:flex;justify-content:flex-end;gap:.75rem}.user-detail-stats{display:flex;gap:3rem;padding:1.5rem;background:var(--gray-50);margin-bottom:2rem}.detail-stat{text-align:center}.detail-stat .stat-value{font-size:2rem;font-weight:600;color:var(--black);letter-spacing:-.02em}.detail-stat .stat-label{font-size:.6875rem;color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em}.racket-list{display:flex;flex-direction:column;gap:.5rem}.racket-list-item{display:flex;align-items:center;gap:1.5rem;padding:1rem 1.25rem;background:var(--gray-50)}.racket-list-main{flex:1}.racket-list-header{display:flex;align-items:baseline;gap:.5rem}.racket-model{font-size:.75rem;color:var(--gray-500)}.racket-list-stringing{font-size:.875rem;margin-top:.375rem}.racket-list-stringing .string-name{font-weight:500}.racket-list-stringing .string-tension{color:var(--gray-500)}.racket-list-stringing .string-date{color:var(--gray-500);margin-left:.75rem}.racket-list-stringing.empty{color:var(--gray-400);font-style:italic}.racket-list-stats{text-align:center}.hours-badge{padding:.375rem .75rem;font-weight:600;font-size:.875rem}.hours-badge.fresh{background:#f0fdf4;color:#166534}.hours-badge.ok{background:#fffbeb;color:#92400e}.hours-badge.old{background:#fef2f2;color:#991b1b}.status-text{display:block;font-size:.625rem;margin-top:.25rem;text-transform:uppercase;letter-spacing:.05em}.status-text.fresh{color:#166534}.status-text.ok{color:#92400e}.status-text.old{color:#991b1b}.pending-approval{text-align:center;padding:6rem 2rem;max-width:400px;margin:0 auto}.pending-icon{font-size:3rem;margin-bottom:1.5rem}.pending-approval h2{margin-bottom:1rem;color:var(--black);font-size:1.25rem;font-weight:600}.pending-approval p{color:var(--gray-500);margin-bottom:.5rem;font-size:.9375rem;line-height:1.6}.pending-hint{font-size:.875rem;margin-top:2rem;color:var(--gray-400)}.sessions-list{max-height:300px;overflow-y:auto}.session-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:1px solid var(--gray-100)}.session-item:last-child{border-bottom:none}.session-date{font-weight:500;font-size:.875rem}.session-duration{color:var(--black);font-weight:600}.history-item{padding:1rem 1.25rem;border-left:2px solid var(--gray-200);margin-left:0;margin-bottom:.5rem}.history-item.current{border-left-color:var(--black);background:var(--gray-50)}.history-date{font-size:.75rem;color:var(--gray-500);text-transform:uppercase;letter-spacing:.02em}.history-string{font-weight:600;margin-top:.25rem}.history-details{font-size:.875rem;color:var(--gray-500)}.rating{color:var(--warning)}.empty-state{text-align:center;padding:4rem 2rem;color:var(--gray-500)}.empty-state h3{margin-bottom:.5rem;color:var(--gray-700);font-weight:600}.empty-state.small{padding:2rem}.notes{background:var(--gray-50);padding:.75rem 1rem;font-size:.875rem;font-style:italic;margin-top:.75rem;color:var(--gray-600)}.history-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem}.history-tab{padding:.625rem 1rem;border:1px solid var(--gray-200);background:var(--white);font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .2s}.history-tab:hover{border-color:var(--gray-400)}.history-tab.active{background:var(--black);color:var(--white);border-color:var(--black)}.stringings-list{display:flex;flex-direction:column;gap:.75rem;max-height:50vh;overflow-y:auto}.stringing-history-item{padding:1rem 1.25rem;border:1px solid var(--gray-200);cursor:pointer;transition:all .2s}.stringing-history-item:hover{border-color:var(--black)}.stringing-history-item.current{border-left:3px solid var(--black);background:var(--gray-50)}.stringing-history-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.5rem}.stringing-history-date{font-size:.75rem;color:var(--gray-500);text-transform:uppercase;letter-spacing:.02em}.current-badge{margin-left:.5rem;background:var(--black);color:var(--white);padding:.125rem .375rem;font-size:.625rem;font-weight:600}.hybrid-badge{background:var(--gray-200);color:var(--gray-700);padding:.125rem .375rem;font-size:.625rem;font-weight:600;margin-right:.375rem}.stringing-history-string{font-weight:600;font-size:.9375rem;margin-bottom:.25rem}.stringing-history-cross{font-size:.8125rem;color:var(--gray-600);margin-bottom:.5rem}.stringing-history-ratings{display:flex;align-items:center;gap:.75rem;margin:.5rem 0}.overall-rating{color:var(--warning);font-size:.875rem}.avg-rating{font-size:.75rem;color:var(--gray-500);background:var(--gray-100);padding:.125rem .5rem}.no-rating{font-size:.75rem;color:var(--gray-400);font-style:italic}.stringing-history-notes{font-size:.8125rem;color:var(--gray-600);font-style:italic;margin-top:.5rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.stringing-history-action{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--gray-100)}.review-link{font-size:.75rem;color:var(--gray-500);font-weight:500}.stringing-history-item:hover .review-link{color:var(--black)}.session-info{display:flex;flex-direction:column;gap:.25rem}.session-notes{font-size:.8125rem;color:var(--gray-500)}.session-actions{display:flex;align-items:center;gap:.5rem}.btn-delete-session{background:none;border:none;color:var(--gray-400);font-size:1.25rem;cursor:pointer;padding:0;line-height:1}.btn-delete-session:hover{color:var(--danger)}.sessions-total{margin-top:1rem;padding:.75rem 1rem;background:var(--gray-50);font-size:.875rem}.review-summary{display:flex;justify-content:space-between;gap:1.5rem;padding:1rem 1.25rem;background:var(--gray-50);margin-bottom:1.5rem}.review-string-info{flex:1}.review-detail{font-size:.875rem;margin-bottom:.25rem}.review-stats{display:flex;gap:1.5rem}.review-stat{text-align:center}.review-stat .stat-value{font-size:1.5rem;font-weight:600;color:var(--black)}.review-stat .stat-label{font-size:.625rem;color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em}.star-rating{display:flex;gap:.25rem}.star-rating .star{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--gray-300);padding:0;transition:color .15s}.star-rating .star:hover,.star-rating .star.filled{color:var(--warning)}.star-rating .star:disabled{cursor:default}.rating-grid{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.rating-category{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--gray-100)}.rating-category:last-child{border-bottom:none}.rating-category-label{display:flex;flex-direction:column}.rating-name{font-weight:500;font-size:.875rem}.rating-desc{font-size:.75rem;color:var(--gray-500)}.rating-category .star-rating .star{font-size:1.125rem}.customer-card{position:relative}.customer-card .stringing-count{position:absolute;top:1.5rem;right:1.5rem;background:var(--black);color:var(--white);padding:.25rem .625rem;font-size:.75rem;font-weight:600}@media(max-width:640px){.app{padding:0 1rem}.header{margin:0 -1rem;padding:1rem}.form-row{grid-template-columns:1fr 1fr;gap:.5rem}.form-row-3{grid-template-columns:1fr 1fr 1fr}.form-row-4{grid-template-columns:1fr 1fr .5fr .5fr}.header{flex-direction:column;gap:1rem;text-align:center}.racket-grid,.user-grid,.catalog-grid{grid-template-columns:1fr}.stats-row,.tabs{display:none}.page-spacer{display:block;height:.5rem}.user-detail-stats{flex-wrap:wrap;justify-content:center;gap:2rem}.racket-list-item{flex-direction:column;align-items:flex-start;gap:1rem}.racket-list-stats{display:flex;align-items:center;gap:.75rem}.quick-select-grid{flex-wrap:wrap;overflow-x:hidden;padding-bottom:.5rem;gap:.375rem}.quick-select-btn{flex-shrink:0;min-width:auto;padding:.5rem .75rem;font-size:.8125rem}.qs-brand{font-size:.625rem}.qs-model{font-size:.75rem}.auth-card{padding:2rem 1.5rem}.modal{padding:1.5rem}.app{padding-bottom:1rem}.header{flex-direction:row;justify-content:space-between;padding:.5rem 1rem;gap:0;text-align:left;position:sticky;top:0;z-index:80}.header h1{font-size:.6875rem}.header-user{display:none}.header-actions .btn{padding:.5rem .75rem;font-size:.6875rem}.card{padding:.75rem;margin-bottom:.5rem}.card-header{margin-bottom:.5rem}.card-title{font-size:.8125rem}.card-subtitle{font-size:.6875rem;margin-top:.125rem}.racket-info{font-size:.75rem;gap:.125rem .75rem;margin-bottom:.5rem}.racket-info dt{font-size:.6875rem}.stringing-info{padding:.5rem .75rem;margin-bottom:.5rem}.stringing-info h4{font-size:.5625rem;margin-bottom:.375rem}.string-detail{font-size:.75rem;margin-bottom:.125rem}.hours-section{margin:.5rem 0}.hours-display{gap:.375rem;margin-bottom:.25rem}.hours-display .number{font-size:1.5rem}.hours-display .unit{font-size:.75rem}.progress-label{font-size:.625rem}.progress-bar{height:4px;margin-bottom:.25rem}.card-actions{margin-top:.5rem;padding-top:.5rem;gap:.25rem}.card-actions .btn{padding:.375rem .5rem;font-size:.625rem}.racket-card .status-badge{top:.75rem;right:.75rem;font-size:.5625rem;padding:.1875rem .375rem}.section-title{font-size:.625rem;margin-bottom:.5rem}.section-header{margin-bottom:.75rem}.user-section{margin-bottom:1.5rem}.effective-tension{font-size:.6875rem}.tension-loss{font-size:.5625rem}.notes,.rating{font-size:.6875rem}.section-header{flex-direction:column;gap:.75rem;align-items:flex-start}.section-header .btn{width:100%}.card-actions{display:flex;flex-wrap:wrap;gap:.25rem}.modal-overlay{padding:0;align-items:stretch}.modal{max-height:100vh;height:100vh;max-width:100vw;width:100vw;border-radius:0;display:flex;flex-direction:column;padding:calc(.75rem + env(safe-area-inset-top,0px)) .75rem calc(.75rem + env(safe-area-inset-bottom,0px));overflow-x:hidden;overflow-y:auto}.modal form{flex:1;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;-webkit-overflow-scrolling:touch}.modal h2{font-size:.9375rem}.modal-subtitle{font-size:.75rem}.modal-header{flex-shrink:0;margin-bottom:.75rem;padding-bottom:.5rem}.modal-footer{margin-top:1rem;padding-top:.75rem}.modal-large{max-width:100%}.form-group{margin-bottom:.625rem}.form-group label{font-size:.625rem;margin-bottom:.25rem}.form-group input,.form-group select,.form-group textarea,.checkbox-field{padding:.5rem .625rem;font-size:.8125rem}.form-group input[type=date]{max-width:100%;min-width:0}.modal form,.modal>*{max-width:100%;min-width:0}.form-row{max-width:100%;min-width:0;overflow:hidden}.form-row{gap:.5rem}.form-actions{margin-top:1rem;padding-top:.75rem;gap:.375rem}.form-actions .btn{padding:.5rem .75rem;font-size:.6875rem}.form-section-title{margin:.75rem 0 .5rem;font-size:.5625rem}.modal .form-actions{margin-top:auto;padding-top:.75rem;padding-bottom:.25rem;flex-shrink:0;position:sticky;bottom:0;background:var(--white)}.history-tabs{gap:.25rem;margin-bottom:.75rem}.history-tab{padding:.375rem .625rem;font-size:.6875rem}.stringings-list{gap:.375rem}.stringing-history-item{padding:.5rem .625rem}.stringing-history-date{font-size:.625rem}.stringing-history-string{font-size:.75rem}.stringing-history-cross{font-size:.6875rem;margin-bottom:.25rem}.stringing-history-header{margin-bottom:.25rem}.stringing-history-ratings{gap:.5rem;margin:.25rem 0}.overall-rating{font-size:.75rem}.stringing-history-notes{font-size:.6875rem;margin-top:.25rem}.stringing-history-action{margin-top:.375rem;padding-top:.375rem}.review-link{font-size:.625rem}.current-badge{font-size:.5rem;padding:.0625rem .25rem}.hours-badge{font-size:.6875rem}.session-item{padding:.375rem 0}.session-date{font-size:.75rem}.session-notes{font-size:.6875rem}.session-duration,.sessions-total{font-size:.75rem}.history-item{padding:.5rem .75rem;margin-bottom:.25rem}.history-date{font-size:.625rem}.history-string{font-size:.8125rem}.history-details{font-size:.75rem}.rating-grid{gap:.375rem}.rating-category{padding:.375rem 0}.rating-name{font-size:.75rem}.rating-desc{font-size:.625rem}.star-rating .star{font-size:1.125rem}.review-summary{padding:.625rem;margin-bottom:.75rem}.review-detail{font-size:.75rem}.review-stats{gap:1rem}.review-stat .stat-value{font-size:1.25rem}.stringing-count{font-size:.8125rem}.empty-state{padding:2rem 1rem}.empty-state.small{padding:1rem;font-size:.75rem}}@supports (padding-top: env(safe-area-inset-top)){@media(max-width:640px){.modal{padding-top:calc(.75rem + env(safe-area-inset-top));padding-bottom:calc(.75rem + env(safe-area-inset-bottom))}}}
