:root{--mauve:#8e6e9e;--mauve-soft:#a98bb7;--plum:#6e5180;--plum-deep:#5a4069;--lavender:#c9b6d4;--lavender-bg:#f4eff7;--lavender-line:#e7deed;--ink:#3d3743;--neutral:#6b6473;--neutral-soft:#9a929f;--white:#fdfcfe;--card:#fff;--good:#3f8f6b;--good-bg:#e7f3ed;--warn:#c2873b;--warn-bg:#fbf1e2;--danger:#c25b5b;--danger-bg:#fbeaea;--radius:16px;--radius-sm:11px;--shadow-sm:0 1px 2px rgba(90,64,105,.06),0 1px 3px rgba(90,64,105,.05);--shadow:0 6px 24px -8px rgba(90,64,105,.18),0 2px 6px rgba(90,64,105,.06);--shadow-lg:0 24px 60px -18px rgba(90,64,105,.32);--sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--serif:"Cormorant Garamond",Georgia,serif;--sidebar-w:248px}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:var(--sans);color:var(--ink);background:var(--lavender-bg);-webkit-font-smoothing:antialiased;line-height:1.5;font-size:15px;overscroll-behavior-y:none}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;-webkit-tap-highlight-color:transparent}input,select,textarea{font-family:inherit;font-size:15px;color:var(--ink)}a{color:inherit;text-decoration:none}::selection{background:var(--lavender);color:var(--plum-deep)}.serif{font-family:var(--serif)}.h-page{font-size:32px;letter-spacing:.2px;line-height:1.1}.h-card,.h-page{font-family:var(--serif);font-weight:600;color:var(--plum-deep);margin:0}.h-card{font-size:21px}.muted{color:var(--neutral)}.tiny{font-size:12.5px}.mono-num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 18px;border-radius:11px;font-weight:600;font-size:14.5px;transition:transform .12s ease,box-shadow .2s ease,background .2s ease;white-space:nowrap}.btn:active{transform:translateY(1px)}.btn-primary{background:linear-gradient(135deg,var(--mauve),var(--plum));color:#fff;box-shadow:0 4px 14px -4px rgba(110,81,128,.55)}.btn-primary:hover{box-shadow:0 8px 22px -6px rgba(110,81,128,.6)}.btn-ghost{background:#fff;color:var(--plum);box-shadow:var(--shadow-sm);border:1px solid var(--lavender-line)}.btn-ghost:hover,.btn-soft{background:var(--lavender-bg)}.btn-soft{color:var(--plum)}.btn-soft:hover{background:var(--lavender-line)}.btn-danger{background:var(--danger-bg);color:var(--danger)}.btn-danger:hover{background:#f6dada}.btn-sm{padding:7px 13px;font-size:13px;border-radius:9px}.btn-icon{width:38px;height:38px;padding:0;border-radius:10px}.btn[disabled]{opacity:.5;cursor:not-allowed}.card{box-shadow:var(--shadow)}.card,.card-flat{background:var(--card);border-radius:var(--radius)}.card-flat{box-shadow:var(--shadow-sm);border:1px solid var(--lavender-line)}.pad{padding:22px}.pad-lg{padding:28px}.field{display:flex;flex-direction:column;gap:6px}.label{font-size:12.5px;font-weight:600;color:var(--neutral);letter-spacing:.2px}.input{width:100%;padding:11px 13px;border-radius:10px;border:1.5px solid var(--lavender-line);background:#fff;transition:border .15s ease,box-shadow .15s ease;outline:none}.input:focus{border-color:var(--mauve-soft);box-shadow:0 0 0 3px rgba(169,139,183,.18)}textarea.input{resize:vertical;min-height:74px;line-height:1.55}.input-prefix{position:relative}.input-prefix .pfx{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--neutral-soft);font-weight:600;pointer-events:none}.input-prefix .input{padding-left:34px}.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600}.badge-good{background:var(--good-bg);color:var(--good)}.badge-warn{background:var(--warn-bg);color:var(--warn)}.badge-danger{background:var(--danger-bg);color:var(--danger)}.badge-soft{background:var(--lavender-bg);color:var(--plum)}.badge-line{background:#fff;border:1px solid var(--lavender-line);color:var(--neutral)}.shell{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-w);flex-shrink:0;background:#fff;border-right:1px solid var(--lavender-line);display:flex;flex-direction:column;position:fixed;top:0;bottom:0;left:0;z-index:40}.sidebar-logo{padding:24px 22px 18px}.sidebar-logo img{height:46px;width:auto;display:block}.nav{display:flex;flex-direction:column;gap:3px;padding:8px 12px;flex:1 1}.nav-item{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:11px;font-weight:600;font-size:14.5px;color:var(--neutral);transition:background .15s ease,color .15s ease;cursor:pointer;width:100%;text-align:left}.nav-item:hover{background:var(--lavender-bg);color:var(--plum)}.nav-item.active{background:linear-gradient(135deg,var(--mauve),var(--plum));color:#fff;box-shadow:0 6px 16px -6px rgba(110,81,128,.55)}.nav-item svg{width:19px;height:19px;flex-shrink:0}.sidebar-foot{padding:14px 16px;border-top:1px solid var(--lavender-line)}.main{flex:1 1;margin-left:var(--sidebar-w);min-width:0}.main-inner{max-width:1120px;margin:0 auto;padding:34px 38px 90px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:26px;flex-wrap:wrap}.bottom-nav,.mobile-top{display:none}@media (max-width:860px){.sidebar{display:none}.main{margin-left:0}.main-inner{padding:18px 16px calc(104px + env(safe-area-inset-bottom))}.mobile-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(12px + env(safe-area-inset-top)) 16px 12px;background:hsla(0,0%,100%,.92);-webkit-backdrop-filter:saturate(180%) blur(10px);backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid var(--lavender-line);position:-webkit-sticky;position:sticky;top:0;z-index:30}.mobile-top img{height:34px}.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:40;background:hsla(0,0%,100%,.94);-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);border-top:1px solid var(--lavender-line);padding:8px 6px calc(8px + env(safe-area-inset-bottom));justify-content:space-around;box-shadow:0 -4px 18px -8px rgba(90,64,105,.18)}.bn-item{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10.5px;font-weight:600;color:var(--neutral-soft);padding:6px 10px;border-radius:12px;min-width:60px;transition:color .15s ease,background .15s ease}.bn-item svg{width:22px;height:22px}.bn-item.active{color:var(--plum);background:var(--lavender-bg)}.bn-item:active{transform:translateY(1px)}.h-page{font-size:26px}.page-head{margin-bottom:18px}}@media (max-width:600px){.form-2col{grid-template-columns:1fr!important}.item-row{grid-template-columns:1fr 1fr 44px!important;gap:10px!important;padding:14px!important}.item-row>:first-child{grid-column:1/-1!important}.ing-row{grid-template-columns:1fr 1fr!important;gap:10px!important;padding:14px!important}.ing-row>:first-child{grid-column:1/-1!important}.svc-row{grid-template-columns:1fr 44px!important;gap:10px!important;padding:14px!important}.svc-row>:first-child{grid-column:1/-1!important}.btn-icon{width:44px!important;height:44px!important}.input{padding:13px 14px}.input,input,select,textarea{font-size:16px}.pad,.pad-lg{padding:18px}.grid-cards{grid-template-columns:1fr!important}.btn{padding:12px 18px}.modal{max-height:92vh}}.nota-stage{position:relative;width:100%;max-width:794px;margin:0 auto}.nota-sheet{position:absolute;top:0;left:0;width:794px;transform-origin:top left;background:#fff;color:var(--plum);font-family:var(--sans);padding:46px 46px 38px;--nb:#c7b3d3}.ns-head{display:flex;align-items:center;justify-content:space-between;gap:26px;margin-bottom:20px}.ns-invoice{flex:1 1;max-width:380px;border:1.6px solid var(--nb);border-radius:36px;padding:14px 34px}.ns-invoice .word{font-family:var(--serif);font-weight:500;font-size:64px;letter-spacing:7px;color:var(--plum-deep);line-height:1.05}.ns-brand{display:flex;flex-direction:column;align-items:flex-end;flex-shrink:0}.ns-brand img{height:240px;width:auto;object-fit:contain;display:block;margin:-20px 0}.ns-info{display:flex;gap:20px;margin-bottom:20px}.ns-cust{flex:1.35 1}.ns-meta{flex:1 1}.ns-cust,.ns-meta{border:1.6px solid var(--nb);border-radius:28px;padding:22px 30px;display:flex;flex-direction:column;justify-content:center}.ns-cust .lbl{font-size:16px;color:var(--mauve);margin-bottom:9px;letter-spacing:.3px}.ns-cust .name{font-size:31px;font-weight:600;color:var(--plum-deep);line-height:1.05}.ns-meta .line{font-size:16px;color:var(--plum);line-height:1.95;letter-spacing:.3px}.ns-meta .stat-line{margin-top:6px;font-size:13px;font-weight:700;letter-spacing:1px;text-transform:uppercase}.ns-body{border:1.6px solid var(--nb);border-radius:28px;padding:30px 36px;display:flex;flex-direction:column;min-height:556px}.ns-item,.ns-items-head{display:grid;grid-template-columns:2.4fr 1.25fr .65fr 1.25fr;grid-gap:16px;gap:16px}.ns-items-head{padding-bottom:22px}.ns-items-head>span{font-family:var(--serif);font-weight:500;font-size:18px;letter-spacing:2.5px;color:var(--mauve);text-transform:uppercase}.ns-item{font-size:16px;color:var(--plum-deep);padding:5px 0;line-height:1.4}.ns-item .sub{color:var(--mauve)}.ns-spacer{flex:1 1;min-height:24px}.ns-totals{margin-left:auto;width:53%;display:flex;flex-direction:column;gap:13px}.ns-trow{display:grid;grid-template-columns:1fr 1fr;align-items:baseline}.ns-trow .k{font-family:var(--serif);font-weight:500;font-size:18px;letter-spacing:1.5px;color:var(--mauve);text-transform:uppercase}.ns-trow .v{font-size:16px;color:var(--plum);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ns-total{margin-left:auto;width:53%;margin-top:18px;display:grid;grid-template-columns:1fr 1fr;align-items:baseline}.ns-total .k{font-family:var(--serif);font-weight:500;font-size:31px;letter-spacing:2.5px;color:var(--plum-deep);text-transform:uppercase}.ns-total .v{font-size:30px;font-weight:700;color:var(--plum-deep);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.3px}.ns-thanks{text-align:center;font-family:var(--serif);font-size:18px;color:var(--mauve);margin:18px 0 4px}.ns-foot{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-top:24px;padding:0 8px}.ns-pay .h{font-family:var(--serif);font-weight:500;font-size:19px;letter-spacing:2.5px;color:var(--mauve);text-transform:uppercase;margin-bottom:11px}.ns-pay .line{font-size:14.5px;color:var(--plum);line-height:1.8;letter-spacing:.2px}.ns-social{display:flex;flex-direction:column;gap:11px;align-items:flex-end}.ns-social .row{display:flex;align-items:center;gap:9px;font-size:17px;color:var(--plum);letter-spacing:.3px}.ns-social .row svg{color:var(--mauve)}.tbl{width:100%;border-collapse:collapse}.tbl th{text-align:left;font-size:11.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--neutral-soft);padding:0 12px 10px}.tbl td{padding:12px;border-top:1px solid var(--lavender-line);vertical-align:middle}.tbl tr:first-child td{border-top:none}.row-hover:hover{background:var(--lavender-bg)}.stat{display:flex;flex-direction:column;gap:7px}.stat .v{font-family:var(--sans);font-weight:800;font-size:30px;letter-spacing:-.6px;color:var(--plum-deep);line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat .k{font-size:12.5px;font-weight:600;color:var(--neutral)}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.divider{height:1px;background:var(--lavender-line);border:none;margin:0}.spinner{width:34px;height:34px;border-radius:50%;border:3px solid var(--lavender-line);border-top-color:var(--mauve);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.fade-in{animation:fadeIn .35s ease both}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.scrim{position:fixed;inset:0;background:rgba(61,55,67,.42);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:60;display:flex;align-items:center;justify-content:center;padding:18px;animation:fadeIn .2s ease}.modal{background:#fff;border-radius:20px;box-shadow:var(--shadow-lg);width:100%;max-width:560px;max-height:90vh;overflow:auto}.empty{text-align:center;padding:54px 20px;color:var(--neutral-soft)}.empty .ico{width:62px;height:62px;border-radius:50%;background:var(--lavender-bg);display:flex;align-items:center;justify-content:center;margin:0 auto 14px}.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(248px,1fr));grid-gap:18px;gap:18px}.seg{display:inline-flex;background:var(--lavender-bg);border-radius:11px;padding:4px;gap:4px}.seg button{padding:8px 16px;border-radius:8px;font-weight:600;font-size:14px;color:var(--neutral);transition:all .15s ease}.seg button.on{background:#fff;color:var(--plum);box-shadow:var(--shadow-sm)}.toast-wrap{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:90;display:flex;flex-direction:column;gap:8px;align-items:center;width:max-content;max-width:calc(100vw - 32px)}.toast{background:var(--plum-deep);color:#fff;padding:12px 20px;border-radius:12px;font-weight:600;font-size:14px;box-shadow:var(--shadow-lg);animation:fadeIn .25s ease;text-align:center}.toast.err{background:var(--danger)}@media (max-width:860px){.toast-wrap{bottom:calc(82px + env(safe-area-inset-bottom))}}@media print{.no-print{display:none!important}body{background:#fff}.main{margin-left:0}body *{visibility:hidden}.nota-stage,.nota-stage *{visibility:visible}.nota-stage{position:absolute;left:0;top:0;max-width:none;height:auto!important;margin:0}.nota-sheet{position:static!important;transform:none!important;width:794px;margin:0 auto;box-shadow:none}}.seg{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.seg::-webkit-scrollbar{display:none}.seg button{flex-shrink:0}@media (max-width:540px){.scrim{align-items:flex-end;padding:0}.modal{border-radius:22px 22px 0 0!important;max-height:94vh;max-width:100%!important;width:100%;padding-bottom:env(safe-area-inset-bottom)}}@media (max-width:860px){.bn-item{min-height:52px;font-size:11px;padding:5px 8px 8px;gap:4px}.bn-item svg{width:23px;height:23px}}.print-actions{display:flex;align-items:center;gap:10px;margin-bottom:22px;flex-wrap:wrap}@media (max-width:480px){.print-actions{gap:8px}.print-actions .pa-actions{display:flex;gap:8px;flex:1 1 100%}.print-actions .pa-actions .btn{flex:1 1;justify-content:center;min-width:0}.print-actions .h-page{font-size:22px}}.nota-stage{min-height:300px}@media (max-width:760px){.mob-inv-card{padding:16px}}@media (max-width:860px){.tbl td{padding:14px 12px}}@media (min-width:480px) and (max-width:860px){.stats-grid{grid-template-columns:repeat(2,1fr)!important}}@media (max-width:400px){.h-page{font-size:24px}.main-inner{padding-left:14px;padding-right:14px}}@media (max-width:720px){.editor-grid{grid-template-columns:1fr!important}.hpp-sticky{position:static!important}}