.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none!important;max-height:none!important;width:auto;padding:0}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;-moz-box-sizing:border-box;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:#ffffff80}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px #000000a6;border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px #0006;background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url("./media/layers-55W3Q4RM.png");width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url("./media/layers-2x-TBM42ERR.png");background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url("./media/marker-icon-2V3QKKVC.png")}.leaflet-container .leaflet-control-attribution{background:#fff;background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;-moz-box-sizing:border-box;box-sizing:border-box;background:#fffc;text-shadow:1px 1px #fff}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678,M12=.70710678,M21=-.70710678,M22=.70710678)}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}:root{--space-page-gap: 24px;--space-card-pad: 20px;--space-stat-gap: 18px;--content-max: 1480px}:root{--bg: #f3f4f6;--sidebar: #ffffff;--surface: #ffffff;--surface-alt: #f9fafb;--text: #1f2937;--text-secondary: #6b7280;--text-tertiary: #9ca3af;--heading: #111827;--border: #d1d5db;--border-light: #e5e7eb;--hover: #f3f4f6;--primary: #0d9488;--primary-hover: #0f766e;--primary-bright: #0d9488;--primary-soft: rgba(13, 148, 136, .1);--primary-light: #f0fdfa;--primary-lighter: #ccfbf1;--focus: #2563eb;--danger: #dc2626;--danger-bg: #fef2f2;--danger-border: #fecaca;--danger-text: #991b1b;--success-bg: #ecfdf5;--success-border: #a7f3d0;--success-text: #065f46;--warning-bg: #fef3c7;--warning-text: #92400e;--badge-neutral-bg: #f3f4f6;--badge-neutral-text: #6b7280;--badge-teal-bg: #ccfbf1;--badge-teal-text: #115e59;--badge-blue-bg: #dbeafe;--badge-blue-text: #1e40af;--badge-green-bg: #d1fae5;--badge-green-text: #065f46;--badge-amber-bg: #fef3c7;--badge-amber-text: #92400e;--badge-red-bg: #fee2e2;--badge-red-text: #991b1b;--badge-purple-bg: #ede9fe;--badge-purple-text: #5b21b6;--shadow: 0 1px 3px rgba(15, 23, 42, .08);--shadow-lg: 0 10px 40px rgba(0, 0, 0, .15);--overlay: rgba(0, 0, 0, .4);--mono: ui-monospace, SFMono-Regular, Menlo, monospace;--control-h: 2.375rem;--control-h-sm: 2rem;--control-radius: .5rem;--control-pad-x: .7rem;--control-font: .9rem;--focus-ring: 0 0 0 3px color-mix(in srgb, var(--primary) 22%, transparent);color-scheme:light}[data-theme=dark]{--bg: #101725;--sidebar: #0c1220;--surface: #1a2231;--surface-alt: #1e2738;--text: #c6cedb;--text-secondary: #8a96a8;--text-tertiary: #5d6878;--heading: #f1f5f9;--border: #262f41;--border-light: #313c50;--hover: #222c3e;--primary: #14b8a6;--primary-hover: #0f9d8f;--primary-bright: #2dd4bf;--primary-soft: rgba(20, 184, 166, .16);--primary-light: #16302b;--primary-lighter: #1b3b34;--focus: #3b82f6;--danger: #ef4444;--danger-bg: #451a1a;--danger-border: #7f1d1d;--danger-text: #fca5a5;--success-bg: #1a3a2a;--success-border: #166534;--success-text: #86efac;--warning-bg: #3a2a1a;--warning-text: #fcd34d;--badge-neutral-bg: rgba(148, 163, 184, .15);--badge-neutral-text: #9aa6b6;--badge-teal-bg: rgba(20, 184, 166, .16);--badge-teal-text: #2dd4bf;--badge-blue-bg: rgba(59, 130, 246, .16);--badge-blue-text: #93c5fd;--badge-green-bg: rgba(34, 197, 94, .15);--badge-green-text: #4ade80;--badge-amber-bg: rgba(245, 158, 11, .15);--badge-amber-text: #fbbf24;--badge-red-bg: rgba(239, 68, 68, .15);--badge-red-text: #f87171;--badge-purple-bg: rgba(139, 92, 246, .16);--badge-purple-text: #c4b5fd;--shadow: 0 1px 3px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 40px rgba(0, 0, 0, .5);--overlay: rgba(0, 0, 0, .6);color-scheme:dark}[data-theme=dark] input,[data-theme=dark] textarea,[data-theme=dark] select{background-color:var(--surface-alt)!important;color:var(--heading)!important;border-color:var(--border)!important}[data-theme=dark] input:focus,[data-theme=dark] textarea:focus,[data-theme=dark] select:focus{border-color:var(--primary)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 22%,transparent)}[data-theme=dark] input::placeholder,[data-theme=dark] textarea::placeholder{color:var(--text-tertiary)!important}:where(input:not([type=checkbox],[type=radio],[type=range],[type=file],[type=color],[type=submit],[type=button],[type=reset]),select,textarea){width:100%;min-height:var(--control-h);padding:0 var(--control-pad-x);box-sizing:border-box;font-family:inherit;font-size:var(--control-font);line-height:1.4;color:var(--text);background-color:var(--surface);border:1px solid var(--border);border-radius:var(--control-radius);transition:border-color .15s ease,box-shadow .15s ease}:where(textarea){min-height:calc(var(--control-h) * 2);padding:.5rem var(--control-pad-x);line-height:1.5;resize:vertical}:where(input:not([type=checkbox],[type=radio],[type=range],[type=file],[type=color],[type=submit],[type=button],[type=reset]),select,textarea):focus{outline:none;border-color:var(--primary);box-shadow:var(--focus-ring)}:where(input,textarea)::placeholder{color:var(--text-tertiary)}:where(input,select,textarea):disabled{background-color:var(--surface-alt);color:var(--text-tertiary);cursor:not-allowed}:where(select){appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:2rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2366738c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .6rem center;background-size:1rem;cursor:pointer}:where(input[type=date],input[type=time],input[type=datetime-local])::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.55}:where(input[type=date],input[type=time],input[type=datetime-local])::-webkit-calendar-picker-indicator:hover{opacity:.85}.control-sm{min-height:var(--control-h-sm)!important;font-size:.82rem!important;padding-top:0!important;padding-bottom:0!important}:host{font-family:system-ui,-apple-system,sans-serif;color:var(--text);background:var(--bg);min-height:100vh;display:block}.page{width:100%;display:flex;flex-direction:column;gap:24px}.header{display:flex;flex-direction:column;gap:.25rem}.header h1{font-size:1.75rem;margin:0}.header p{margin:0;color:var(--text-secondary)}.header-top{display:flex;justify-content:space-between;align-items:center}.header-actions{display:flex;gap:.75rem;align-items:center}.link{font-size:.85rem;color:var(--primary);text-decoration:none}.link:hover{text-decoration:underline}.panel{background:var(--surface);border:1px solid var(--border);border-radius:.75rem;padding:20px;box-shadow:var(--shadow)}.panel h2{font-size:1.05rem;margin:0 0 .75rem}@media (max-width: 640px){.list-panel{background:transparent;box-shadow:none;padding:0;border-radius:0}}.loading,.empty{text-align:center;color:var(--text-secondary);padding:2rem}.loading p,.empty p{margin:.25rem 0}.error-msg{padding:.5rem .6rem;font-size:.85rem;color:var(--danger-text);background:var(--danger-bg);border-radius:.5rem;border:1px solid var(--danger-border);margin-bottom:.75rem}.success-msg{padding:.5rem .6rem;font-size:.85rem;color:var(--success-text);background:var(--success-bg);border-radius:.5rem;border:1px solid var(--success-border);margin-bottom:.75rem}table{width:100%;border-collapse:collapse}table th,table td{text-align:left;padding:.6rem .75rem;font-size:.9rem}table th{font-weight:700;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);border-bottom:1px solid var(--border-light)}table td{border-bottom:1px solid var(--hover)}table tr:last-child td{border-bottom:none}.num{text-align:right;white-space:nowrap}.mono{font-family:var(--mono)}.clickable{cursor:pointer}.clickable:hover{background:var(--surface-alt)}.table-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.action-cell{display:flex;gap:.5rem;justify-content:flex-end}@media (max-width: 900px){.hide-tablet{display:none!important}}@media (max-width: 640px){.hide-mobile{display:none!important}}.mobile-view{display:none}@media (max-width: 640px){.desktop-view{display:none!important}.mobile-view{display:block!important}}.m-card{background:var(--surface);border:1px solid var(--border-light);border-radius:.5rem;padding:.75rem;margin-bottom:.5rem}.card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.5rem}.card-title{font-weight:600;font-size:.95rem;line-height:1.3;min-width:0;overflow:hidden;text-overflow:ellipsis}.card-header-right{display:flex;align-items:center;gap:.35rem;flex-shrink:0}.card-fields{display:flex;flex-direction:column;gap:.3rem}.card-field{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;font-size:.85rem}.card-label{color:var(--text-secondary);font-size:.8rem;flex-shrink:0}.card-value{text-align:right;font-weight:500;word-break:break-all}.card-actions{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin-top:.5rem}.card-checkbox{flex-shrink:0;cursor:pointer}.card-duration{font-family:var(--mono);font-size:.85rem;font-weight:600;flex-shrink:0}.card-expansion{background:var(--surface-alt);border:1px solid var(--border-light);border-top:none;border-radius:0 0 .5rem .5rem;margin-top:-.5rem;margin-bottom:.5rem;padding:.75rem}.badge{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.75rem;font-weight:500}.badge-draft{background:var(--hover);color:var(--text-secondary)}.badge-submitted{background:#ccfbf1;color:#115e59}.badge-approved{background:#d1fae5;color:#065f46}.badge-rejected{background:#fee2e2;color:#991b1b}.badge-finalized{background:#ccfbf1;color:#115e59}.badge-sent{background:#fef3c7;color:#92400e}.badge-paid{background:#d1fae5;color:#065f46}.badge-external{background:#ede9fe;color:#5b21b6}.badge-overdue{background:#fee2e2;color:#991b1b;font-weight:700;font-size:.65rem;margin-left:.35rem}.badge-active{background:#d1fae5;color:#065f46}.badge-inactive{background:var(--hover);color:var(--text-secondary)}.badge-user,.badge-freelancer{background:#ccfbf1;color:#115e59}.badge-approver,.badge-client{background:#fef3c7;color:#92400e}.badge-admin{background:#fce7f3;color:#9d174d}.badge-superadmin{background:#ede9fe;color:#5b21b6}.badge-connected{background:#d1fae5;color:#065f46}.badge-warning{background:#fef3c7;color:#92400e;font-weight:700;font-size:.7rem}.badge-danger{background:#fef2f2;color:#b91c1c}.modal-overlay,.modal-backdrop{position:fixed;inset:0;background:var(--overlay);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-backdrop{z-index:100}.modal{background:var(--surface);border-radius:.75rem;padding:1.5rem;width:100%;max-width:480px;box-shadow:var(--shadow-lg);max-height:90vh;display:flex;flex-direction:column}.modal h3{margin:0 0 .25rem;font-size:1.1rem}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid var(--border-light)}.modal-header h2{font-size:1.1rem;margin:0}.modal-close{background:none;border:none;font-size:1.5rem;color:var(--text-secondary);cursor:pointer;padding:0;line-height:1}.modal-close:hover{color:var(--text)}.modal-body{padding:1.25rem;display:flex;flex-direction:column;gap:.75rem;overflow-y:auto}.modal-footer{display:flex;justify-content:flex-end;gap:.5rem;padding:1rem 1.25rem;border-top:1px solid var(--border-light)}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}.modal-hint{color:var(--text-secondary);font-size:.85rem;margin:0 0 1rem}.modal-label{display:block;font-size:.85rem;font-weight:600;margin-bottom:.35rem}.modal-textarea{width:100%;padding:.5rem .6rem;border:1px solid var(--border);border-radius:.5rem;font:inherit;font-size:.9rem;resize:vertical;box-sizing:border-box}.modal-textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px #0d948826}.modal-char-count{text-align:right;font-size:.75rem;color:var(--text-tertiary);margin-top:.25rem}.btn-cancel{background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:.35rem .85rem;font:inherit;font-size:.85rem;cursor:pointer}.btn-cancel:hover{background:var(--hover)}.date-range{display:inline-flex;align-items:center;gap:.1rem;height:2rem;padding:0 .25rem 0 .65rem;border:1px solid var(--border);border-radius:999px;background:var(--surface);transition:border-color .15s,box-shadow .15s}.date-range:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px #0d94881a}.date-range input[type=date],.date-range input[type=time]{border:none;background:transparent;padding:0 .2rem;width:auto;min-width:0;min-height:0;height:auto;font-size:.8rem;border-radius:0;box-shadow:none}.date-range input[type=date]:focus,.date-range input[type=time]:focus{outline:none;box-shadow:none;border:none}.date-range .dp-trigger{border:none;background:transparent;width:auto;min-width:0;height:auto;padding:0 .2rem;border-radius:0;font-size:.8rem;box-shadow:none}.date-range .dp.open .dp-trigger{border-color:transparent;box-shadow:none}.date-range .sep{color:var(--text-tertiary);font-size:.8rem;padding:0 .15rem;-webkit-user-select:none;user-select:none}.date-range .date-range-apply{display:inline-flex;align-items:center;justify-content:center;height:1.5rem;padding:0 .7rem;margin-left:.15rem;border:none;border-radius:999px;background:var(--primary);color:#fff;font:inherit;font-size:.78rem;cursor:pointer}.date-range .date-range-apply:hover{background:var(--primary-hover)}.date-range .date-range-apply:disabled{opacity:.5;cursor:default}.filter-bar{display:flex;gap:.5rem;flex-wrap:wrap;align-items:flex-end;margin-bottom:.75rem}.bulk-actions{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding:.5rem 0}.bulk-buttons{display:flex;gap:.5rem}.selection-info{font-size:.8rem;color:var(--text-secondary)}.checkbox-label{display:flex;align-items:center;gap:.4rem;font-size:.85rem;cursor:pointer}@media (max-width: 640px){.filter-bar{flex-direction:column}.filter-bar .field{width:100%}.bulk-actions{flex-direction:column;gap:.5rem;align-items:stretch}}.filter-head{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}.stat-anchor{display:flex;flex-direction:column;gap:.125rem;min-width:0}.stat-anchor .label{font-size:.66rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary)}.stat-anchor .value{font-family:var(--mono);font-size:2.25rem;font-weight:700;color:var(--heading);line-height:1;letter-spacing:-.02em;margin-top:.125rem}.stat-anchor .sub{font-size:.82rem;color:var(--text-secondary);margin-top:.375rem}.stat-anchor .sub .billable{color:var(--success-text);font-weight:500;font-family:var(--mono)}.filter-chips{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;padding:0 .25rem;margin-bottom:.75rem}.filter-chips .lead{font-size:.7rem;color:var(--text-tertiary);font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin-right:.25rem}.filter-chip{display:inline-flex;align-items:center;padding:0 .25rem 0 .7rem;height:1.75rem;background:var(--surface);border:1px solid var(--border);border-radius:999px;font-size:.78rem;color:var(--text);white-space:nowrap;transition:background .15s}.filter-chip:hover{background:var(--surface-alt)}.filter-chip .key{color:var(--text-secondary);margin-right:.3rem}.filter-chip .val{font-weight:600;color:var(--heading)}.filter-chip .x{margin-left:.375rem;width:1.25rem;height:1.25rem;border-radius:50%;border:none;background:transparent;display:inline-flex;align-items:center;justify-content:center;color:var(--text-tertiary);cursor:pointer}.filter-chip .x:hover{background:var(--hover);color:var(--text)}.filter-chip .x:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.filter-chip-add-wrap{position:relative;display:inline-flex}.filter-chip-add{display:inline-flex;align-items:center;gap:.3rem;padding:0 .75rem;height:1.75rem;background:transparent;border:1px dashed var(--border);border-radius:999px;font:inherit;font-size:.78rem;color:var(--text-secondary);cursor:pointer;transition:border-color .15s,color .15s,background .15s}.filter-chip-add:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light)}.filter-chip-add:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.filter-clear-all{margin-left:auto;font:inherit;font-size:.75rem;color:var(--text-secondary);background:transparent;border:none;cursor:pointer;padding:.25rem .5rem;border-radius:.375rem}.filter-clear-all:hover{color:var(--danger);background:var(--danger-bg)}.filter-clear-all:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.chip-menu{position:absolute;top:calc(100% + .4rem);left:0;z-index:50;min-width:14rem;max-width:22rem;background:var(--surface);border:1px solid var(--border-light);border-radius:.6rem;box-shadow:var(--shadow-lg);padding:.35rem;display:flex;flex-direction:column;gap:.1rem;animation:chip-menu-in .14s ease-out}.chip-menu button,.chip-menu .chip-menu-item{display:flex;align-items:center;justify-content:space-between;gap:.5rem;background:transparent;border:none;text-align:left;padding:.45rem .6rem;font:inherit;font-size:.82rem;color:var(--text);border-radius:.4rem;cursor:pointer}.chip-menu button:hover,.chip-menu .chip-menu-item:hover{background:var(--hover)}.chip-menu button.active,.chip-menu .chip-menu-item.active{background:var(--primary-light);color:var(--primary);font-weight:600}.chip-menu button:focus-visible,.chip-menu .chip-menu-item:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.chip-menu button .hint,.chip-menu .chip-menu-item .hint{color:var(--text-tertiary);font-size:.7rem}.chip-menu .chip-menu-section{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);padding:.4rem .6rem .2rem}@keyframes chip-menu-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 760px){.filter-head{flex-direction:column;align-items:stretch}.filter-clear-all{margin-left:0}}.tabs{display:flex;gap:.25rem;background:var(--surface);border-radius:.75rem;padding:.25rem;box-shadow:var(--shadow)}.tabs button{flex:1;border:none;background:transparent;padding:.5rem 1rem;border-radius:.5rem;font:inherit;font-size:.9rem;cursor:pointer;color:var(--text-secondary)}.tabs button.active{background:var(--primary);color:#fff;font-weight:600}.tabs button:hover:not(.active){background:var(--hover)}.tab-pane{display:flex;flex-direction:column;gap:var(--space-page-gap)}.timers-live{display:flex;flex-direction:column;gap:12px}.tlive{display:flex;align-items:center;gap:20px;position:relative;overflow:hidden;padding:18px 22px;border-radius:.75rem;background:linear-gradient(180deg,var(--primary-light),var(--surface));border:1px solid color-mix(in srgb,var(--primary) 35%,transparent);box-shadow:var(--shadow)}.tlive:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--primary)}.tlive.paused{background:linear-gradient(180deg,var(--warning-bg),var(--surface));border-color:color-mix(in srgb,#f59e0b 35%,transparent)}.tlive.paused:before{background:#f59e0b}.live-dot{width:11px;height:11px;border-radius:50%;background:var(--primary);flex:0 0 auto;animation:tlive-pulse 1.8s infinite}.tlive.paused .live-dot{background:#f59e0b;animation:none}@keyframes tlive-pulse{0%{box-shadow:0 0 color-mix(in srgb,var(--primary) 55%,transparent)}70%{box-shadow:0 0 0 10px transparent}to{box-shadow:0 0 0 0 transparent}}.live-info{min-width:0;flex:1}.live-state{font-size:10.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--primary)}.tlive.paused .live-state{color:#b45309}.live-desc{font-size:16.5px;font-weight:700;color:var(--heading);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.live-meta{font-size:12.5px;color:var(--text-secondary);margin-top:2px}.live-clock{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:34px;font-weight:700;color:var(--heading);flex:0 0 auto}.live-ctrls{display:flex;gap:8px;flex:0 0 auto}.tctrl{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;transition:.15s}.tctrl svg{width:19px;height:19px}.tctrl:disabled{opacity:.55;cursor:default}.tctrl.pause{background:var(--hover);color:var(--text)}.tctrl.pause:hover:not(:disabled){background:var(--border)}.tctrl.resume{background:#f59e0b;color:#3a2a05}.tctrl.resume:hover:not(:disabled){filter:brightness(1.08)}.tctrl.stop{background:var(--primary);color:#fff}.tctrl.stop:hover:not(:disabled){background:var(--primary-hover)}.scroll-sentinel{display:flex;justify-content:center;padding:1rem;min-height:1px}.loading-more{color:var(--text-secondary);font-size:.85rem}.hint{font-size:.8rem;color:var(--text-secondary)}.total{font-weight:600}.group-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.group-total{font-family:var(--mono);font-size:.85rem;font-weight:600;color:var(--text)}.add-row{display:flex;gap:.5rem;margin-bottom:1rem}.create-form{display:flex;flex-direction:column;gap:.75rem;max-width:400px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:1rem}@media (max-width: 640px){.form-grid{grid-template-columns:1fr}}.form-actions{display:flex;gap:.5rem}.page-actions{display:flex;justify-content:flex-end}.btn-icon{background:none;border:none;font-size:1rem;cursor:pointer;color:var(--text-secondary)}.btn-icon:hover{color:var(--text)}.btn-danger{color:var(--danger)}.btn-danger:hover{color:var(--danger-text)}.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:var(--control-h);padding:0 1.1rem;border-radius:var(--control-radius);font:inherit;font-size:var(--control-font);font-weight:600;cursor:pointer;transition:background .15s}.primary:disabled,.secondary:disabled{opacity:.6;cursor:default}.primary{background:var(--primary);color:#fff;border:none}.primary:hover:not(:disabled){background:var(--primary-hover)}.secondary{background:var(--surface);border:1px solid var(--border);color:var(--text)}.secondary:hover:not(:disabled){background:var(--hover)}html,body{margin:0;padding:0;background:var(--bg);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}:focus:not(:focus-visible){outline:none}.page-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.page-header h1{font-size:1.5rem;font-weight:700;color:var(--heading);margin:0;line-height:1.3}.page-header p{font-size:.85rem;color:var(--text-secondary);margin:.25rem 0 0}@media (max-width: 640px){.page-header{flex-direction:column;align-items:flex-start;gap:.75rem}.page-header h1{font-size:1.25rem}}.table-scroll,.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width: 640px){.hide-mobile{display:none}}.btn,.btn-danger-outline,.btn-ghost,.btn-secondary,.btn-primary{font:inherit;font-size:.85rem;border:none;border-radius:999px;padding:.4rem 1rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;transition:background .15s,opacity .15s;min-height:2.5rem}.btn:disabled,.btn-danger-outline:disabled,.btn-ghost:disabled,.btn-secondary:disabled,.btn-primary:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-secondary{background:var(--surface);border:1px solid var(--border);color:var(--text)}.btn-secondary:hover:not(:disabled){background:var(--surface-alt)}.btn-ghost{background:none;color:var(--primary);padding:.4rem .75rem}.btn-ghost:hover:not(:disabled){background:var(--primary-light)}.btn-danger-outline{background:var(--surface);border:1px solid var(--danger-border);color:var(--danger)}.btn-danger-outline:hover:not(:disabled){background:var(--danger-bg)}.btn-loading{position:relative;color:transparent!important;pointer-events:none}.btn-loading:after{content:"";position:absolute;width:.85rem;height:.85rem;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:btn-spin .6s linear infinite;border-color:#fff6;border-top-color:#fff}@keyframes btn-spin{to{transform:rotate(360deg)}}.loading-center{display:flex;justify-content:center;align-items:center;padding:2rem}@media (max-width: 640px){button,select,input[type=date],input[type=time]{min-height:2.75rem}.btn-icon{min-width:2.75rem;min-height:2.75rem;display:inline-flex;align-items:center;justify-content:center}}input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],input[type=time],input[type=url],input[type=tel],input[type=search],textarea,select{font:inherit;font-size:.875rem;padding:.5rem .75rem;border:1px solid var(--border);border-radius:.5rem;background:var(--surface);color:var(--text);transition:border-color .15s,box-shadow .15s;width:100%;box-sizing:border-box}input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,input[type=number]:focus,input[type=date]:focus,input[type=time]:focus,input[type=url]:focus,input[type=tel]:focus,input[type=search]:focus,textarea:focus,select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #0d94881a}input[type=text]:disabled,input[type=email]:disabled,input[type=password]:disabled,input[type=number]:disabled,input[type=date]:disabled,input[type=time]:disabled,input[type=url]:disabled,input[type=tel]:disabled,input[type=search]:disabled,textarea:disabled,select:disabled{background:var(--surface-alt);color:var(--text-tertiary);cursor:not-allowed}input[type=text]::placeholder,input[type=email]::placeholder,input[type=password]::placeholder,input[type=number]::placeholder,input[type=date]::placeholder,input[type=time]::placeholder,input[type=url]::placeholder,input[type=tel]::placeholder,input[type=search]::placeholder,textarea::placeholder,select::placeholder{color:var(--text-tertiary)}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2.25rem;cursor:pointer}textarea{resize:vertical;min-height:4rem}label{display:block;font-size:.8rem;font-weight:500;color:var(--text);margin-bottom:.25rem}.field{display:flex;flex-direction:column;gap:.25rem}.msg-success{padding:.5rem .75rem;font-size:.85rem;color:var(--success-text);background:var(--success-bg);border-radius:.5rem;border:1px solid var(--success-border)}.msg-error{padding:.5rem .75rem;font-size:.85rem;color:var(--danger-text);background:var(--danger-bg);border-radius:.5rem;border:1px solid var(--danger-border)}
