:root{--green:#1f6f54;--green-dark:#16543f;--green-light:#e6f2ed;--bg:#f6f7f6;--card:#fff;--text:#1c2420;--muted:#66736d;--border:#dde4e0;--danger:#b3362c;--danger-light:#fbeae8;--warning:#9a6b00;--warning-light:#fdf3dd;--on-green:#fff;--eq-1:#1f6f54;--eq-2:#b26a00;--eq-3:#2f6bb0;--eq-4:#7a4fa3;--eq-5:#a83a52;--radius:10px;font-size:16px}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}#root{max-width:960px;margin:0 auto;padding:0 1rem}header.topbar{flex-wrap:wrap;align-items:center;gap:.75rem;padding:1rem 0;display:flex}header.topbar h1{color:var(--green-dark);margin:0;font-size:1.35rem}header.topbar .who{color:var(--muted);align-items:center;gap:.5rem;margin-left:auto;font-size:.9rem;display:flex}nav.tabs{border-bottom:2px solid var(--border);gap:.25rem;margin-bottom:1.25rem;display:flex;overflow:auto hidden}nav.tabs button{cursor:pointer;color:var(--muted);white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;padding:.6rem 1rem;font-size:.95rem}nav.tabs button.active{color:var(--green-dark);border-bottom-color:var(--green);font-weight:600}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:1rem;padding:1rem 1.25rem}.card h2,.card h3{margin-top:0}.grid{grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:1rem;display:grid}form.stack{flex-direction:column;gap:.75rem;display:flex}.row{flex-wrap:wrap;gap:.75rem;display:flex}.row>*{flex:140px}label.field{color:var(--muted);flex-direction:column;gap:.25rem;font-size:.85rem;display:flex}input,select,textarea{border:1px solid var(--border);color:var(--text);background:#fff;border-radius:6px;padding:.5rem .6rem;font-family:inherit;font-size:.95rem}input:focus,select:focus,textarea:focus{outline:2px solid var(--green);outline-offset:1px}label.check{align-items:center;gap:.5rem;font-size:.9rem;display:flex}button.primary{background:var(--green);color:#fff;cursor:pointer;border:none;border-radius:6px;align-self:flex-start;padding:.6rem 1.2rem;font-size:.95rem;font-weight:600}button.primary:hover{background:var(--green-dark)}button.primary:disabled{opacity:.6;cursor:default}button.ghost{border:1px solid var(--border);cursor:pointer;color:var(--text);background:0 0;border-radius:6px;padding:.35rem .75rem;font-size:.85rem}button.ghost:hover{border-color:var(--green);color:var(--green-dark)}button.danger{border:1px solid var(--danger);color:var(--danger);cursor:pointer;background:0 0;border-radius:6px;padding:.35rem .75rem;font-size:.85rem}.badge{background:var(--green-light);color:var(--green-dark);border-radius:999px;padding:.1rem .55rem;font-size:.75rem;font-weight:600;display:inline-block}.badge.warn{background:var(--warning-light);color:var(--warning)}.badge.danger{background:var(--danger-light);color:var(--danger)}.alert{background:var(--danger-light);border:1px solid var(--danger);color:var(--danger);border-radius:6px;margin-bottom:1rem;padding:.6rem .9rem;font-size:.9rem}.notice{background:var(--warning-light);border:1px solid var(--warning);color:var(--warning);border-radius:6px;margin-bottom:1rem;padding:.6rem .9rem;font-size:.9rem}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{text-align:left;border-bottom:1px solid var(--border);padding:.5rem .6rem}th{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:.8rem;font-weight:600}.amount-pos{color:var(--green-dark);font-weight:600}.amount-neg{color:var(--danger);font-weight:600}.muted{color:var(--muted);font-size:.85rem}.field-warn{color:var(--warning);font-size:.85rem}.day-group{margin-bottom:1rem}.day-group h4{text-transform:capitalize;color:var(--muted);margin:0 0 .4rem;font-size:.85rem}.reservation-item{background:var(--card);border:1px solid var(--border);border-left:4px solid var(--green);border-radius:6px;flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.4rem;padding:.55rem .75rem;display:flex}.reservation-item .time{min-width:8.5rem;font-weight:600}.empty{text-align:center;color:var(--muted);padding:2rem 0}.reservation-item.conflict{border-color:var(--danger);background:var(--danger-light)}.view-toggle{border:1px solid var(--border);border-radius:8px;width:100%;margin-bottom:.75rem;display:flex;overflow:hidden}.view-toggle button{cursor:pointer;min-width:0;min-height:48px;color:var(--muted);white-space:nowrap;background:0 0;border:none;flex:1 1 0;font-size:.85rem}.view-toggle button.active{background:var(--green);color:#fff;font-weight:600}@media (width>=721px){.view-toggle{align-self:flex-start;width:auto}.view-toggle button{flex:none;padding:0 1.1rem}}.cal-nav{flex-wrap:wrap;align-items:center;gap:.15rem .75rem;margin-bottom:.6rem;display:flex}.cal-period-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--green-dark);flex:100%;font-size:1.05rem;overflow:hidden}.cal-period-label.month{text-transform:capitalize}.cal-nav-actions{flex:auto;align-items:center;gap:.25rem;display:flex}.cal-nav-actions button{white-space:nowrap;min-width:48px;min-height:48px}.cal-nav-arrow{flex:none;padding:0;font-size:1.6rem;line-height:1}.cal-nav-today{flex:none;margin-left:auto;padding:0 .75rem}.view-toggle button:focus-visible,.cal-nav-actions button:focus-visible{outline:2px solid var(--green);outline-offset:-2px}@media (width>=721px){.cal-period-label{flex:auto}.cal-nav-actions{flex:none}}.cal-page{flex-direction:column;height:100%;display:flex}.cal-page>*,.cal-card>*{flex:none}.cal-page>.card{margin-bottom:0}.cal-page>.cal-card{flex-direction:column;flex:auto;display:flex}.cal-card>.cal-grid,.cal-card>.week-grid{flex:auto}.cal-grid{border:1px solid var(--border);border-radius:6px;grid-template-rows:auto;grid-template-columns:repeat(7,1fr);grid-auto-rows:minmax(0,1fr);height:18rem;margin-bottom:.6rem;display:grid;overflow:hidden}.cal-grid:last-child,.cal-note{margin-bottom:0}.cal-head{background:var(--green-light);color:var(--green-dark);text-align:center;border-bottom:1px solid var(--border);padding:.3rem 0;font-size:.75rem;font-weight:600}.cal-cell{border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--card);cursor:pointer;min-height:0;padding:.25rem;overflow:hidden}.cal-cell:nth-child(7n){border-right:none}.cal-cell:hover{background:var(--green-light)}.cal-cell.outside{background:var(--bg);color:var(--muted)}.cal-cell.today .cal-day-num{background:var(--green);color:#fff}.cal-day-num{text-align:center;border-radius:999px;min-width:1.35rem;margin-bottom:.15rem;padding:.05rem .25rem;font-size:.75rem;font-weight:600;display:inline-block}.cal-event{background:var(--green-light);border-left:3px solid var(--green);white-space:nowrap;text-overflow:ellipsis;border-radius:3px;margin-bottom:.15rem;padding:.1rem .3rem .1rem .35rem;font-size:.68rem;line-height:1.25;position:relative;overflow:hidden}.cal-event.planned{background:repeating-linear-gradient(45deg, var(--warning-light), var(--warning-light) 4px, #fff 4px, #fff 8px);border-left-style:dashed}.cal-event.conflict{outline:1px solid var(--danger)}.cal-event-time{font-weight:600}.conflict-dot{background:var(--danger);border-radius:999px;width:.5rem;height:.5rem;margin-right:.25rem;display:inline-block}.cal-event.mine,.week-event.mine{cursor:pointer}.cal-event.mine:hover,.week-event.mine:hover{filter:brightness(.93)}.week-grid{border:1px solid var(--border);border-radius:6px;grid-template-rows:minmax(0,1fr);grid-template-columns:3rem repeat(7,1fr);height:18rem;margin-bottom:.6rem;display:grid;overflow:hidden}.week-hours-col,.week-day-col{flex-direction:column;display:flex}.week-hours,.week-body{flex:auto;min-height:0}.week-head{background:var(--green-light);height:2.6rem;color:var(--green-dark);border-bottom:1px solid var(--border);cursor:pointer;text-transform:capitalize;flex-direction:column;justify-content:center;align-items:center;font-size:.75rem;font-weight:600;line-height:1.15;display:flex}.week-head-date{font-size:.85rem}.week-head.today{background:var(--green);color:#fff}.week-hours-col .week-head{cursor:default}.week-hours{border-right:1px solid var(--border);position:relative}.week-hour-label{color:var(--muted);font-size:.65rem;position:absolute;right:.3rem;transform:translateY(-.05rem)}.week-day-col{border-right:1px solid var(--border);min-width:0}.week-day-col:last-child{border-right:none}.week-body{cursor:pointer;background-image:repeating-linear-gradient(to bottom, transparent, transparent calc(12.5% - 1px), var(--border) calc(12.5% - 1px), var(--border) 12.5%);position:relative}.week-event{background:var(--green-light);border-left:3px solid var(--green);box-sizing:border-box;border-radius:3px;padding:.1rem .2rem .1rem .3rem;font-size:.65rem;line-height:1.2;position:absolute;overflow:hidden}.week-event.planned{background:repeating-linear-gradient(45deg, var(--warning-light), var(--warning-light) 4px, #fff 4px, #fff 8px);border-left-style:dashed}.week-event.conflict{outline:1px solid var(--danger)}.message{background:var(--green-light);border-radius:var(--radius);align-self:flex-start;max-width:85%;padding:.5rem .75rem}.message.message-mine{background:var(--card);border:1px solid var(--border);align-self:flex-end}.message-meta{align-items:center;gap:.5rem;margin-bottom:.2rem;font-size:.8rem;display:flex}.message-body{white-space:pre-wrap;word-break:break-word;margin:0}.message-composer{flex-wrap:wrap;align-items:flex-end;gap:.5rem;display:flex}.message-composer textarea{resize:vertical;font:inherit;border:1px solid var(--border);border-radius:var(--radius);flex:1;padding:.5rem}.message-tree{margin:0 0 1rem}.message-branch{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.msg-node{flex-direction:column;gap:.5rem;display:flex}.message-tree .message{align-self:stretch;max-width:100%}.msg-node>.message-branch{border-left:2px solid var(--border);margin-left:.5rem;padding-left:.75rem}.msg-node>.reply-composer{border-left:2px solid var(--green);margin-left:.5rem;padding-left:.75rem}.reply-toggle{margin-top:.4rem;font-weight:600}.link,.link-danger{cursor:pointer;color:var(--green-dark);background:0 0;border:none;padding:0;font-size:.8rem}.link-danger{color:var(--danger)}.bell{position:static}.bell-button{cursor:pointer;color:var(--muted);background:0 0;border:none;border-radius:8px;padding:.3rem;line-height:0;display:inline-flex;position:relative}.bell-button:hover{color:var(--green-dark);background:var(--green-light)}.bell-button.bell-active{color:var(--green)}.bell-badge{background:var(--danger);color:#fff;text-align:center;border-radius:999px;min-width:1.1rem;padding:0 .25rem;font-size:.65rem;line-height:1.1rem;position:absolute;top:-2px;right:-4px}.bell-panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);z-index:20;width:min(22rem,100%);padding:.75rem;position:absolute;top:calc(100% + .4rem);right:0;box-shadow:0 8px 24px #0000001f}.bell-head{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.notif-list{max-height:60vh;margin:0;padding:0;list-style:none;overflow-y:auto}.notif{border-bottom:1px solid var(--border);align-items:center;display:flex}.notif-item{overflow-wrap:anywhere;text-align:left;cursor:pointer;min-width:0;font:inherit;background:0 0;border:none;flex-direction:column;flex:1;gap:.1rem;padding:.5rem .25rem;display:flex}.notif-unread{background:var(--green-light)}.notif-dismiss{flex:none;justify-content:center;align-items:center;min-width:2.75rem;min-height:2.75rem}.notif-title{font-size:.9rem;font-weight:600}.notif-body{color:var(--text);font-size:.85rem}.notif-time{font-size:.75rem}.pref-table{border-collapse:collapse;width:100%;margin-bottom:.75rem;font-size:.85rem}.pref-table th,.pref-table td{text-align:left;padding:.25rem}.pref-table th:not(:first-child),.pref-table td:not(:first-child){text-align:center;width:3rem}.usermenu{position:relative}.usermenu-button{border:1px solid var(--border);cursor:pointer;color:var(--text);font:inherit;background:0 0;border-radius:8px;align-items:center;gap:.4rem;padding:.3rem .6rem;font-size:.9rem;display:inline-flex}.usermenu-button:hover{border-color:var(--green);color:var(--green-dark)}.usermenu-name{font-weight:600}.usermenu-panel{width:min(20rem,90vw)}.usermenu-head{border-bottom:1px solid var(--border);flex-direction:column;gap:.1rem;margin-bottom:.5rem;padding:.25rem .25rem .5rem;display:flex}.usermenu-head .muted{font-size:.75rem}.menu-item{text-align:left;cursor:pointer;width:100%;font:inherit;color:var(--text);background:0 0;border:none;border-radius:8px;align-items:center;gap:.6rem;padding:.6rem .5rem;font-size:.9rem;display:flex}.menu-item:hover{background:var(--green-light);color:var(--green-dark)}.menu-item-danger:hover{background:var(--danger-light);color:var(--danger)}.btn-primary{background:var(--green);color:#fff;border-radius:var(--radius);font:inherit;cursor:pointer;border:none;align-items:center;gap:.4rem;padding:.5rem 1rem;font-weight:600;line-height:1.1;display:inline-flex}.btn-primary:hover:not(:disabled){background:var(--green-dark)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-sm{padding:.35rem .6rem;font-size:.85rem}.inline-edit{flex-wrap:nowrap;flex:1;align-items:center;gap:.25rem;min-width:0;display:flex}.inline-edit>button{flex:none}.inline-edit input{min-width:0;font:inherit;border:1px solid var(--border);border-radius:8px;flex:1;padding:.4rem .55rem}.inline-edit .btn-primary,.inline-edit .ghost{flex:none}.icon-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:.35rem;line-height:0;display:inline-flex}.icon-btn:hover{color:var(--green-dark)}.icon-edit,.icon-confirm,.icon-primary{color:var(--green)}.icon-edit:hover,.icon-confirm:hover,.icon-primary:hover{color:var(--green-dark)}.icon-danger{color:var(--danger)}.icon-danger:hover{color:#8f2a22}.icon-btn:disabled{opacity:.4;cursor:not-allowed}.icon-group{flex:none;align-items:center;gap:.25rem;display:inline-flex}.modal-backdrop{z-index:50;background:#0f1e1973;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--card);border-radius:var(--radius);width:min(32rem,100%);max-height:90dvh;padding:1.25rem;overflow-y:auto;box-shadow:0 12px 40px #00000040}.modal-head{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.modal-form{flex-direction:column;gap:1rem;display:flex}.modal-form input,.modal-form textarea{font:inherit;border:1px solid var(--border);resize:vertical;border-radius:8px;width:100%;padding:.55rem .7rem}.modal-form input[type=checkbox]{border:0;width:auto;padding:0}.modal:focus{outline:none}.modal-body{flex-direction:column;gap:.75rem;margin-bottom:1rem;display:flex}.modal-loss{flex-direction:column;gap:.3rem;margin:0;padding-left:1.1rem;font-size:.9rem;display:flex}.modal-actions{justify-content:flex-end;gap:.5rem;display:flex}@media (width<=720px){.modal-backdrop{align-items:stretch;padding:0}.modal{border-radius:0;flex-direction:column;width:100%;max-width:none;height:100%;max-height:none;display:flex}.modal-form,.modal-body{flex:1}.modal-actions{margin-top:auto}}.side-list{flex-direction:column;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.side-row{border-bottom:1px solid var(--border);align-items:center;gap:.25rem;display:flex}.side-open{cursor:pointer;text-align:left;font:inherit;color:var(--text);background:0 0;border:none;flex:1;align-items:center;gap:.6rem;padding:.65rem .25rem;display:flex}.side-open:hover{color:var(--green-dark)}.side-open>svg{color:var(--green);flex:none}.side-titles{flex-direction:column;gap:.1rem;min-width:0;display:flex}.side-title{font-weight:600}.side-sub{font-size:.8rem}.thread-form{flex-direction:column;gap:.5rem;margin:.75rem 0;display:flex}.thread-form input,.thread-form textarea{font:inherit;border:1px solid var(--border);border-radius:var(--radius);width:100%;padding:.5rem}.message-actions{gap:.15rem;margin-left:auto;display:inline-flex}.split-layout{align-items:flex-start;gap:1rem;display:flex}.split-main{flex:1;min-width:0}.split-aside{flex:0 0 clamp(15rem,26%,20rem)}.split-aside .card{position:sticky;top:.5rem}.empty-pane{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;min-height:12rem;display:flex}.empty-pane>svg{color:var(--border)}.side-active{background:var(--green-light);border-radius:8px}.side-active .side-open{color:var(--green-dark);font-weight:600}@media (width>=721px){.side-back{display:none}}@media (width<=720px){.split-layout{flex-direction:column}.split-aside{flex:none;width:100%}.split-aside .card{position:static}.split-layout.has-open .split-aside,.split-layout:not(.has-open) .split-main{display:none}}.check-author{margin:.25rem 0 0;font-size:.8rem}.progress{color:var(--muted);align-items:center;gap:.5rem;margin:.5rem 0 .75rem;font-size:.85rem;display:flex}.progress-track{background:var(--border);border-radius:3px;flex:1;height:6px;overflow:hidden}.progress-fill{background:var(--green);height:100%;transition:width .15s ease-out}.progress-done .progress-fill{background:var(--green-dark)}.check-items{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.check-item{border-bottom:1px solid var(--border);align-items:center;gap:.5rem;padding:.35rem 0;display:flex}.check-item:last-child{border-bottom:none}.check-toggle{cursor:pointer;text-align:left;font:inherit;color:var(--text);background:0 0;border:none;flex:1;align-items:center;gap:.6rem;min-width:0;padding:.25rem;display:flex}.check-toggle:disabled{cursor:default}.check-toggle>svg{color:var(--muted);flex:none}.check-toggle.checked>svg{color:var(--green)}.check-label{flex-direction:column;gap:.1rem;min-width:0;display:flex}.check-toggle.checked .check-text{color:var(--muted);text-decoration:line-through}.check-by{color:var(--muted);font-size:.75rem}.check-add{align-items:center;gap:.5rem;margin-top:.75rem;display:flex}.check-add input{flex:1}.doc-head{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.75rem;display:flex}.doc-head h3{flex:1;min-width:8rem;margin:0}.doc-search{flex:12rem;align-items:center;min-width:9rem;display:flex;position:relative}.doc-search>svg{color:var(--muted);pointer-events:none;position:absolute;left:.55rem}.doc-search input{width:100%;padding-left:2rem}.chips{flex-wrap:wrap;gap:.35rem;margin-bottom:.85rem;display:flex}.chip{border:1px solid var(--border);color:var(--muted);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border-radius:999px;padding:.2rem .7rem;font-size:.8rem}.chip:hover{border-color:var(--green);color:var(--green-dark)}.chip.active{background:var(--green-light);border-color:var(--green);color:var(--green-dark);font-weight:600}.chip .count{opacity:.65;font-variant-numeric:tabular-nums;margin-left:.3rem}.doc-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.doc-row{border-bottom:1px solid var(--border);align-items:center;gap:.7rem;padding:.55rem .25rem;display:flex}.doc-row:last-child{border-bottom:none}.doc-icon{background:var(--green-light);width:2.15rem;height:2.15rem;color:var(--green-dark);border-radius:8px;flex:none;place-items:center;display:grid}.doc-icon.is-link{color:#3d5a8a;background:#eaeff7}.doc-open{min-width:0;color:var(--text);flex-direction:column;flex:1;gap:.05rem;text-decoration:none;display:flex}.doc-open:hover .doc-name{color:var(--green-dark);text-decoration:underline}.doc-name{text-overflow:ellipsis;white-space:nowrap;font-size:.93rem;font-weight:600;display:block;overflow:hidden}.doc-sub{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;display:block;overflow:hidden}.doc-sub .host{color:#3d5a8a}.doc-edit{flex-wrap:nowrap;flex:1;align-items:center;gap:.25rem;min-width:0;display:flex}.doc-edit input{flex:1;min-width:0}.doc-edit>button,.doc-edit>select{flex:none}.nature{border:1px solid var(--border);border-radius:8px;align-self:flex-start;display:inline-flex;overflow:hidden}.nature button{font:inherit;cursor:pointer;color:var(--muted);background:0 0;border:none;align-items:center;gap:.35rem;padding:.4rem .9rem;font-size:.85rem;display:inline-flex}.nature button.active{background:var(--green);color:#fff;font-weight:600}.dropzone{border:2px dashed var(--border);border-radius:var(--radius);text-align:center;color:var(--muted);font:inherit;cursor:pointer;background:0 0;flex-direction:column;align-items:center;gap:.4rem;width:100%;padding:1.4rem 1rem;font-size:.85rem;display:flex}.dropzone:hover{border-color:var(--green);color:var(--green-dark)}.dropzone:has(input:focus-visible){outline:2px solid var(--green);outline-offset:1px}.dropzone.filled{text-align:left;border-style:solid;border-color:var(--green);background:var(--green-light);color:var(--green-dark);flex-direction:row;align-items:center;gap:.7rem;padding:.7rem .85rem}.dropzone.filled>span{min-width:0}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.attach-btn{cursor:pointer;position:relative}.attach-btn:has(input:focus-visible){outline:2px solid var(--green);outline-offset:1px}.attach-btn:has(input:disabled){opacity:.4;cursor:not-allowed}.attachment{border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:8px;align-items:center;gap:.4rem;max-width:100%;margin-top:.35rem;padding:.3rem .55rem;font-size:.85rem;text-decoration:none;display:inline-flex}.attachment:hover{border-color:var(--green);color:var(--green-dark)}.attachment>svg{color:var(--green);flex:none}.attachment-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.attachment-draft{background:var(--green-light);color:var(--green-dark);border-radius:8px;flex-basis:100%;align-items:center;gap:.4rem;min-width:0;margin:0;padding:.25rem .5rem;font-size:.8rem;display:flex}.attachment-draft>svg{flex:none}.attachment-draft .attachment-name{flex:1;min-width:0}.app-shell{flex-direction:column;height:100dvh;display:flex}.appbar{z-index:20;min-width:0;padding:calc(.45rem + env(safe-area-inset-top)) 0 .45rem;background:var(--bg);flex:none;align-items:center;gap:.5rem;display:flex;position:relative}.appbar-actions{flex:none;align-items:center;gap:.25rem;display:flex}.switcher{border-radius:var(--radius);min-width:0;min-height:48px;font:inherit;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;flex:auto;align-items:center;gap:.5rem;margin-left:-.35rem;padding:.35rem .5rem .35rem .35rem;display:flex}.switcher:hover{background:var(--green-light)}.switcher>svg{color:var(--muted);flex:none}.switcher-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--green-dark);font-size:1.05rem;font-weight:700;overflow:hidden}.eq-dot{background:var(--eq-1);border-radius:50%;flex:none;width:.7rem;height:.7rem}.eq-dot-1{background:var(--eq-1)}.eq-dot-2{background:var(--eq-2)}.eq-dot-3{background:var(--eq-3)}.eq-dot-4{background:var(--eq-4)}.eq-dot-5{background:var(--eq-5)}.modal-backdrop.sheet{align-items:flex-end;padding:0}.modal-backdrop.sheet>.modal{border-radius:var(--radius) var(--radius) 0 0;width:100%;max-width:32rem;height:auto;max-height:80vh;padding-bottom:calc(1.25rem + env(safe-area-inset-bottom));animation:.18s ease-out sheet-up}@keyframes sheet-up{0%{transform:translateY(1.5rem)}}.sheet-body{flex-direction:column;gap:.5rem;display:flex}.sheet-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.sheet-transverse{border-top:1px solid var(--border);padding-top:.5rem}.sheet-item{width:100%;min-height:48px;font:inherit;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:.6rem;padding:.5rem .6rem;display:flex}.sheet-item:hover{background:var(--green-light)}.sheet-item>svg{color:var(--muted);flex:none}.sheet-item[aria-current=true]{color:var(--green-dark);font-weight:600}.sheet-item[aria-current=true]>svg{color:var(--green)}.sheet-item-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.tabbar{background:var(--card);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);flex:none;margin-inline:calc(50% - 50vw);display:flex}.tabbar button{min-width:0;min-height:48px;font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:.15rem;padding:.4rem .15rem;display:flex}.tabbar-label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:clamp(.62rem,2.6vw,.72rem);line-height:1.2;overflow:hidden}.tabbar button[aria-current=page]{color:var(--green-dark);box-shadow:inset 0 2px 0 var(--green)}.tabbar button[aria-current=page] .tabbar-label{font-weight:600}.app-main{-webkit-overflow-scrolling:touch;flex:auto;min-height:0;padding-bottom:1rem;position:relative;overflow-y:auto}@media (width>=721px){.tabbar{justify-content:center}.tabbar button{flex:0 9rem}.tabbar-label{font-size:.8rem}}.screen{z-index:40;background:var(--bg);padding:calc(.75rem + env(safe-area-inset-top)) 1rem calc(2rem + env(safe-area-inset-bottom));position:fixed;inset:0;overflow-y:auto}.screen-inner{max-width:960px;margin:0 auto}.screen-head{align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.screen-head h2{min-width:0;color:var(--green-dark);flex:1;margin:0;font-size:1.35rem}.segmented{scrollbar-width:none;gap:.35rem;margin-bottom:.7rem;padding:.15rem 0;display:flex;overflow-x:auto}.segmented::-webkit-scrollbar{display:none}.segmented>[role=tab]{border:1px solid var(--border);background:var(--card);min-height:48px;font:inherit;color:var(--muted);white-space:nowrap;cursor:pointer;border-radius:999px;flex:none;padding:.35rem .9rem;font-size:.85rem}.segmented>[role=tab]:hover{border-color:var(--green);color:var(--green-dark)}.segmented>[role=tab][aria-selected=true]{background:var(--green);border-color:var(--green);color:var(--on-green);font-weight:600}.overview{z-index:40;background:var(--bg);padding:calc(.75rem + env(safe-area-inset-top)) 1rem calc(2rem + env(safe-area-inset-bottom));position:fixed;inset:0;overflow-y:auto}.overview-inner{max-width:960px;margin:0 auto}.overview-head{align-items:flex-start;gap:.75rem;margin-bottom:1rem;display:flex}.overview-titles{flex:1;min-width:0}.overview-titles h2{color:var(--green-dark);margin:0;font-size:1.35rem}.overview-titles p{margin:0}.overview-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.overview-row{border:none;border-bottom:1px solid var(--border);width:100%;min-height:48px;font:inherit;color:var(--text);text-align:left;cursor:pointer;background:0 0;border-radius:8px 8px 0 0;align-items:center;gap:.6rem;padding:.5rem .4rem;display:flex}.overview-list li:last-child .overview-row{border-bottom:none}.overview-row:hover{background:var(--green-light)}.overview-row-main{flex-direction:column;flex:1;min-width:0;display:flex}.overview-row-title{text-overflow:ellipsis;white-space:nowrap;text-transform:capitalize;font-weight:600;overflow:hidden}.overview-row-sub{text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:.85rem;overflow:hidden}.overview-balances{grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.overview-balance{border:1px solid var(--border);border-radius:var(--radius);width:100%;height:100%;min-height:48px;font:inherit;text-align:left;cursor:pointer;background:0 0;flex-direction:column;align-items:flex-start;gap:.25rem;padding:.6rem .7rem;display:flex}.overview-balance:hover{border-color:var(--green)}.overview-balance-head{align-items:center;gap:.4rem;width:100%;min-width:0;display:flex}.switcher:focus-visible,.sheet-item:focus-visible,.tabbar button:focus-visible,.overview-row:focus-visible,.overview-balance:focus-visible,.segmented>[role=tab]:focus-visible{outline:2px solid var(--green);outline-offset:-2px}@media (prefers-reduced-motion:reduce){.modal-backdrop.sheet>.modal{animation:none}}:root{--tabbar-height:56px}.tabbar{min-height:var(--tabbar-height)}.fab{right:1rem;bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom) + 1rem);z-index:35;background:var(--green);width:56px;height:56px;color:var(--on-green);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:transform .1s;display:flex;position:fixed;box-shadow:0 3px 10px #00000040}.fab:hover{background:var(--green-dark)}.fab:active{transform:scale(.94)}.fab:focus-visible{outline:3px solid var(--text);outline-offset:2px}@media (prefers-reduced-motion:reduce){.fab{transition:none}.fab:active{transform:none}}.lot-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.lot-row{border-bottom:1px solid var(--border);align-items:center;gap:.5rem;padding:.3rem 0;display:flex}.lot-row:last-child{border-bottom:none}.lot-label{flex-direction:column;flex:1;min-width:0;display:flex}.lot-name{align-items:baseline;gap:.35rem;font-size:.9rem;display:flex}.lot-qty{color:var(--green-dark);font-variant-numeric:tabular-nums;font-weight:600}.lot-note{color:var(--muted);font-size:.78rem}.lot-form{flex-wrap:wrap;flex:1;align-items:center;gap:.35rem;min-width:0;margin-top:.5rem;display:flex}.lot-form input{font:inherit;border:1px solid var(--border);border-radius:8px;min-width:0;padding:.35rem .5rem;font-size:.85rem}.lot-form .lot-name-input{flex:2 7rem}.lot-form .lot-qty-input{flex:0 0 4rem}.lot-form .lot-note-input{flex:3 9rem}.install-panel{border-top:1px solid var(--border);flex-direction:column;gap:.5rem;margin-top:1.25rem;padding-top:1rem;display:flex}.install-panel p{margin:0;font-size:.85rem}.install-steps{color:var(--muted);margin:0;padding-left:1.2rem;font-size:.85rem}.install-steps li{margin-bottom:.25rem}.tour-overlay{--tour-voile:#0f1e1973;z-index:45;position:fixed;inset:0}.tour-overlay-plein{background:var(--tour-voile)}.tour-halo{border-radius:var(--radius);border:2px solid var(--green);box-shadow:0 0 0 9999px var(--tour-voile);pointer-events:none;position:fixed}.tour-bubble{background:var(--card);max-width:24rem;color:var(--text);border-radius:var(--radius);margin-inline:auto;padding:1rem;position:fixed;left:1rem;right:1rem;box-shadow:0 6px 24px #0000004d}.tour-bubble-centre{top:50%;transform:translateY(-50%)}.tour-bubble:focus-visible{outline:3px solid var(--green);outline-offset:2px}.tour-progress{color:var(--muted);font-variant-numeric:tabular-nums;margin:0;font-size:.75rem}.tour-title{color:var(--green-dark);margin:.25rem 0 .4rem;font-size:1.05rem}.tour-body{margin:0;font-size:.9rem}.tour-actions{align-items:center;gap:.5rem;margin-top:1rem;display:flex}.tour-actions .tour-next{margin-left:auto}
