.loading{padding:2rem;text-align:center}.layout{min-height:100vh;min-height:100dvh;display:flex;overflow-x:hidden}.sidebar{width:232px;flex-shrink:0;position:sticky;top:0;height:100vh;height:100dvh;display:flex;flex-direction:column;background:var(--color-surface);border-right:1px solid var(--color-border);z-index:60}.sidebar-logo{display:flex;align-items:center;padding:.9rem 1rem .6rem}.sidebar-nav{flex:1;overflow-y:auto;padding:.25rem .6rem 1rem}.side-group{margin-top:.35rem;padding-top:.35rem;border-top:1px solid rgba(148,163,184,.12)}.side-group:first-child{margin-top:0;padding-top:0;border-top:none}.nav-icon{flex-shrink:0;opacity:.9}.side-group-title,.side-top{display:flex;align-items:center;gap:.6rem;width:100%;background:transparent;border:none;border-radius:8px;padding:.55rem .65rem;color:var(--color-text);font-size:.95rem;font-weight:700;text-align:left;letter-spacing:.01em}.side-group-label{flex:1}.side-group-title:hover:not(:disabled),.side-top:hover{color:var(--color-text);background:#38bdf814}.side-group-title:disabled{cursor:default}.side-group.current>.side-group-title .nav-icon,.side-top.active .nav-icon{color:var(--color-accent);opacity:1}.side-top.active{background:#38bdf826;box-shadow:inset 3px 0 0 var(--color-accent)}.side-group-chevron{flex-shrink:0;color:var(--color-text-muted);transition:transform .15s ease}.side-group-chevron.open{transform:rotate(90deg)}.side-group-title:disabled .side-group-chevron{opacity:.4}.side-sub{margin:.1rem 0 .35rem 1.2rem;padding-left:.6rem;border-left:1px solid var(--color-border)}.side-link{display:block;color:var(--color-text-muted);padding:.36rem .65rem;margin:1px 0;border-radius:6px;font-size:.87rem;font-weight:400}.side-link:hover{color:var(--color-text);background:#38bdf812}.side-link.active{color:var(--color-text);background:#38bdf826;box-shadow:inset 3px 0 0 var(--color-accent);font-weight:600}.sidebar-footer{border-top:1px solid var(--color-border);padding:.6rem}.sidebar-backdrop{display:none}.content{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;min-height:56px;background:var(--color-bg);border-bottom:1px solid var(--color-border)}.topbar-logo{display:none}.logo{display:flex;align-items:center;flex-shrink:0;text-decoration:none}.brand-logo{display:block;object-fit:contain}.brand-logo--header{height:40px;width:auto}.brand-logo--auth{height:140px;width:auto;margin:0 auto 1rem}.account{position:relative;margin-left:auto}.account-button{display:flex;align-items:center;gap:.5rem;background:transparent;border:1px solid transparent;color:var(--color-text);padding:.3rem .6rem .3rem .3rem;border-radius:999px;font-size:.9rem}.account-button:hover,.account-button[aria-expanded=true]{border-color:var(--color-border);background:var(--color-surface)}.account-avatar{width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:700;color:var(--color-bg);background:var(--color-accent)}.account-menu{position:absolute;right:0;top:calc(100% + 6px);min-width:230px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;box-shadow:0 12px 30px #00000059;padding:.35rem;z-index:70}.account-menu-head{display:flex;flex-direction:column;padding:.5rem .65rem .6rem;margin-bottom:.25rem;border-bottom:1px solid var(--color-border);font-size:.9rem}.account-menu-head span{color:var(--color-text-muted);font-size:.8rem}.account-menu button{display:block;width:100%;text-align:left;background:transparent;border:none;color:var(--color-text);padding:.5rem .65rem;border-radius:6px;font-size:.9rem}.account-menu button:hover{background:#38bdf81a}.account-menu .account-logout{color:#f87171}.nav-toggle{display:none;background:transparent;border:1px solid var(--color-border);color:var(--color-text);padding:.45rem .6rem;border-radius:6px;cursor:pointer}@media (max-width: 900px){.sidebar{position:fixed;left:0;top:0;bottom:0;transform:translate(-100%);transition:transform .2s ease;box-shadow:none}.layout.nav-open .sidebar{transform:translate(0);box-shadow:8px 0 30px #0006}.sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:55}.nav-toggle{display:block}.topbar-logo{display:flex;align-items:center}.topbar-logo .brand-logo--header{height:32px}.account-name{display:none}}.btn-logout{background:transparent;border:1px solid var(--color-border);color:var(--color-text-muted);padding:.5rem 1rem;border-radius:6px}.btn-logout:hover{color:var(--color-text);border-color:var(--color-accent)}.main{flex:1;padding:1rem;overflow-y:auto;overflow-x:hidden;min-height:0}.page{max-width:100%;overflow-x:hidden}.page h1{margin:0 0 1rem;font-size:1.25rem}@media (min-width: 769px){.main{padding:1.5rem 2rem}.page h1{font-size:1.5rem;margin-bottom:1.5rem}}.muted{color:var(--color-text-muted);margin:0 0 1.5rem}.page h2{margin:2rem 0 1rem;font-size:1.1rem}.toolbar{margin-bottom:1.5rem;display:flex;gap:1rem;align-items:center}.toolbar .btn-primary{width:auto}.toolbar .select{padding:.5rem 1rem;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);color:var(--color-text)}.toolbar input{padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);color:var(--color-text)}.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -1rem;padding:0 1rem}.table{width:100%;min-width:600px;border-collapse:collapse}.table th,.table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--color-border)}.table th{color:var(--color-text-muted);font-weight:500}.table tr:hover td{background:#ffffff05}.table .warning{color:#fbbf24}.warning-row td{background:#fbbf241a}.dashboard-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.card{padding:1rem;background:var(--color-surface);border-radius:10px;border:1px solid var(--color-border);text-decoration:none;color:inherit;transition:border-color .2s,box-shadow .2s}@media (min-width: 600px){.dashboard-cards{grid-template-columns:repeat(3,1fr);gap:1rem}}@media (min-width: 900px){.dashboard-cards{grid-template-columns:repeat(4,1fr);gap:1.25rem}.card{padding:1.25rem}}@media (min-width: 1200px){.dashboard-cards{grid-template-columns:repeat(5,1fr)}}.card:hover{border-color:var(--color-accent);box-shadow:0 4px 12px #00000026}.card.warning{border-color:#fbbf2480}.card.warning:hover{border-color:#fbbf24}.card h3{margin:0 0 .25rem;font-size:.8rem;color:var(--color-text-muted)}.card p{margin:0;font-size:1.25rem;font-weight:600}@media (min-width: 769px){.card h3{font-size:.9rem;margin-bottom:.5rem}.card p{font-size:1.5rem}}.card.warning p{color:#fbbf24}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem}.login-card{width:100%;max-width:400px;padding:2rem;background:var(--color-surface);border-radius:12px;border:1px solid var(--color-border)}.login-card h1{margin:0 0 .25rem;text-align:center}.subtitle{margin:0 0 2rem;text-align:center;color:var(--color-text-muted);font-size:.9rem}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;font-size:.9rem;color:var(--color-text-muted)}.form-group input{width:100%;padding:.75rem 1rem;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg);color:var(--color-text)}.form-group input:focus{outline:none;border-color:var(--color-accent)}.form-group input.readonly{background:var(--color-bg-secondary);color:var(--color-text-muted);cursor:default}.error{color:#f87171;font-size:.9rem;margin-bottom:1rem}.btn-primary{width:100%;padding:.75rem 1rem;background:var(--color-accent);color:var(--color-bg);border:none;border-radius:6px;font-weight:600}.btn-primary:hover:not(:disabled){background:var(--color-accent-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{padding:.75rem 1rem;background:transparent;color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:6px;font-weight:500}.btn-secondary:hover{color:var(--color-text);border-color:var(--color-accent)}a.btn-secondary,a.btn-primary{display:inline-block;text-decoration:none}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem;overflow-y:auto}@media (min-width: 769px){.modal-overlay{padding:2rem}}.modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:2rem;max-width:500px;width:100%;max-height:90vh;overflow-y:auto}.modal h2{margin:0 0 1.5rem}.form-group select,.form-group textarea{width:100%;padding:.75rem 1rem;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg);color:var(--color-text)}.form-group textarea{resize:vertical;min-height:60px}.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--color-accent)}.form-row{display:grid;grid-template-columns:1fr;gap:1rem}@media (min-width: 600px){.form-row{grid-template-columns:1fr 1fr}}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1.5rem}.form-actions .btn-primary{width:auto}.modal-wide{max-width:700px}.btn-sm{padding:.4rem .75rem;font-size:.85rem}.btn-icon{background:transparent;border:none;color:var(--color-text-muted);font-size:1.2rem;padding:0 .5rem;cursor:pointer}.btn-icon:hover{color:#f87171}.invoice-item-row{display:grid;grid-template-columns:2fr 80px 60px 100px 70px auto;gap:.5rem;margin-bottom:.5rem;align-items:center}.invoice-item-row input{padding:.5rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg);color:var(--color-text)}.invoice-item-desc{min-width:0}.invoice-item-qty,.invoice-item-unit,.invoice-item-price,.invoice-item-vat{text-align:right}.calendar-nav{display:flex;align-items:center;gap:.5rem}.calendar-nav .btn-secondary{padding:.5rem .75rem}.calendar-week-label{margin-left:1rem;font-weight:500;color:var(--color-text-muted)}.calendar-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -1rem;padding:0 1rem}.calendar-grid{position:relative;border:1px solid var(--color-border);border-radius:8px;overflow:hidden;background:var(--color-surface);min-width:500px}.calendar-header{display:grid;grid-template-columns:60px repeat(7,1fr);background:var(--color-bg);border-bottom:1px solid var(--color-border)}.calendar-cell{padding:.5rem;min-height:40px}.calendar-time-header{border-right:1px solid var(--color-border)}.calendar-day-header{text-align:center;font-weight:500;color:var(--color-text-muted);font-size:.9rem}.calendar-body{display:grid;grid-template-rows:repeat(17,50px)}.calendar-row{display:grid;grid-template-columns:60px repeat(7,1fr);border-bottom:1px solid var(--color-border)}.calendar-row:last-child{border-bottom:none}.calendar-time{border-right:1px solid var(--color-border);font-size:.85rem;color:var(--color-text-muted);padding-top:.25rem}.calendar-slot{border-right:1px solid var(--color-border)}.calendar-slot:last-child{border-right:none}.calendar-appointments{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none}.calendar-appointments>*{pointer-events:auto}.calendar-apt{position:absolute;background:#38bdf840;border:1px solid var(--color-accent);border-radius:4px;padding:2px 6px;overflow:hidden;font-size:.75rem;display:flex;flex-direction:column;cursor:default}.calendar-apt:hover{background:#38bdf859}.calendar-apt-title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-apt-time{color:var(--color-text-muted);font-size:.7rem}.calendar-apt-customer{color:var(--color-text-muted);font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-apt-actions{position:absolute;top:2px;right:4px;display:flex;gap:4px}.calendar-apt-edit,.calendar-apt-cancel{background:transparent;border:none;color:var(--color-text-muted);font-size:.9rem;line-height:1;cursor:pointer;padding:0}.calendar-apt-edit:hover{color:var(--color-accent)}.calendar-apt-cancel:hover{color:#f87171}.order-photos{margin-top:1.5rem}.order-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.5rem;margin-top:.75rem}.order-photo-thumb{position:relative;aspect-ratio:1 / 1;padding:0;border:1px solid var(--color-border);border-radius:6px;overflow:hidden;background:var(--color-surface);cursor:pointer;color:var(--color-text-muted);font-size:.75rem}.order-photo-thumb img{width:100%;height:100%;object-fit:cover;display:block}.order-photo-thumb:hover,.order-photo-thumb:focus-visible{border-color:var(--color-accent)}.order-photo-caption{position:absolute;left:0;right:0;bottom:0;padding:.2rem .35rem;background:#0009;color:#fff;font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}.link-button{background:none;border:none;padding:0;color:var(--color-accent);cursor:pointer;font:inherit;text-decoration:underline}.recovery-codes{list-style:none;padding:0;margin:.5rem 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem 1rem;font-size:1rem}.recovery-codes code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.05em}:root{--color-bg: #0f172a;--color-surface: #1e293b;--color-border: #334155;--color-text: #f1f5f9;--color-text-muted: #94a3b8;--color-accent: #38bdf8;--color-accent-hover: #7dd3fc;--font-sans: "DM Sans", system-ui, sans-serif}*{box-sizing:border-box}html{overflow-x:hidden;overflow-y:auto}body{margin:0;font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);min-height:100vh;overflow-x:hidden}a{color:var(--color-accent);text-decoration:none}a:hover{color:var(--color-accent-hover)}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit}
