:root{--accent:#65478a;--accent-deep:#4e3570;--accent-light:#b49bd6;--accent-soft:#65478a1f;--green:#3f9a66;--green-deep:#2c7a4e;--green-soft:#d5e4da;--ink:#17201b;--paper:#f8f6f0;--card:#fdfcf9;--soft:#5c6e64;--line:#17201b1a;--danger:#9b4a2e;--font-heading:"Outfit", system-ui, sans-serif;--font-body:"Inter", system-ui, sans-serif;--radius:14px;--shadow:0 1px 2px #17201b0f, 0 4px 14px #17201b0d;--tabbar-height:64px}@font-face{font-family:Outfit;font-weight:400;src:url(/fonts/Outfit-Regular.ttf)format("truetype");font-display:swap}@font-face{font-family:Outfit;font-weight:600;src:url(/fonts/Outfit-SemiBold.ttf)format("truetype");font-display:swap}@font-face{font-family:Outfit;font-weight:700;src:url(/fonts/Outfit-Bold.ttf)format("truetype");font-display:swap}@font-face{font-family:Inter;font-weight:400;src:url(/fonts/Inter-Regular.ttf)format("truetype");font-display:swap}@font-face{font-family:Inter;font-weight:600;src:url(/fonts/Inter-SemiBold.ttf)format("truetype");font-display:swap}@font-face{font-family:Inter;font-weight:700;src:url(/fonts/Inter-Bold.ttf)format("truetype");font-display:swap}@font-face{font-family:Inter;font-weight:400;font-style:italic;src:url(/fonts/Inter-Italic.ttf)format("truetype");font-display:swap}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-body);background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0;font-size:16px;line-height:1.45}h1,h2,h3,h4{font-family:var(--font-heading);margin:0;font-weight:600;line-height:1.2}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}img{max-width:100%;display:block}a{color:var(--accent)}.container{max-width:720px;margin:0 auto;padding:16px}.screen{min-height:100%;padding-bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom))}.muted{color:var(--soft)}.is-danger{color:var(--danger);font-weight:600}.pageheader{background:var(--accent);color:#fff;z-index:10;padding-top:env(safe-area-inset-top);position:sticky;top:0}.pageheader__inner{align-items:center;gap:8px;min-height:60px;padding-top:10px;padding-bottom:10px;display:flex}.pageheader__titles{flex:1;min-width:0}.pageheader__title{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:22px;overflow:hidden}.pageheader__subtitle{opacity:.85;font-size:13px}.pageheader__actions{align-items:center;gap:4px;display:flex}.tabbar{z-index:20;background:var(--card);border-top:1px solid var(--line);height:calc(var(--tabbar-height) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar__tab{color:var(--soft);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:12px;font-weight:600;text-decoration:none;display:flex}.tabbar__icon{border-radius:999px;padding:4px 18px;display:flex}.tabbar__tab.is-active{color:var(--accent-deep)}.tabbar__tab.is-active .tabbar__icon{background:var(--accent);color:#fff}.btn{background:var(--accent-soft);color:var(--accent-deep);border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:10px 16px;font-weight:600;display:inline-flex}.btn--primary{background:var(--accent);color:#fff}.btn--green{background:var(--green);color:#fff}.btn--danger{background:var(--danger);color:#fff}.btn--ghost{border-color:var(--line);color:var(--ink);background:0 0}.btn--onaccent{color:#fff;background:#ffffff2e}.btn--small{padding:6px 10px;font-size:14px}.btn--block{width:100%}.btn:disabled{opacity:.5;cursor:default}.iconbtn{width:40px;height:40px;color:var(--ink);background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.iconbtn--onaccent{color:#fff}.iconbtn:active{background:var(--accent-soft)}.fab{right:20px;bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom) + 20px);z-index:15;background:var(--green);color:#fff;letter-spacing:.02em;border:0;border-radius:999px;align-items:center;gap:8px;min-width:56px;height:56px;padding:0 20px;font-size:16px;font-weight:700;display:inline-flex;position:fixed;box-shadow:0 6px 18px #2c7a4e59}.fab:not(.fab--extended){width:56px;padding:0}.fab__icon{display:flex}.cardlist{flex-direction:column;gap:12px;display:flex}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow)}.projectcard{gap:12px;padding:12px;display:flex}.projectcard__cover{background:var(--accent-soft);border:0;border-radius:10px;flex:0 0 96px;height:120px;padding:0;overflow:hidden}.projectcard__cover img{object-fit:cover;width:100%;height:100%}.projectcard__placeholder{width:100%;height:100%;color:var(--accent);justify-content:center;align-items:center;display:flex}.projectcard__body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.projectcard__row{align-items:flex-start;gap:4px;display:flex}.projectcard__titlebtn{text-align:left;background:0 0;border:0;flex:1;min-width:0;padding:0}.projectcard__title{font-size:18px}.projectcard__ref{color:var(--soft);font-size:14px}.projectcard__meta{color:var(--ink);gap:14px;font-size:14px;display:flex}.projectcard__dates{color:var(--soft);margin-top:2px;font-size:13px}.menu{position:relative}.menu__list{z-index:30;background:var(--card);border-radius:12px;min-width:160px;margin:0;padding:6px;list-style:none;position:absolute;top:40px;right:0;box-shadow:0 8px 24px #17201b2e}.menu__item{text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;width:100%;padding:10px 12px;display:flex}.menu__item:hover,.menu__item:focus-visible{background:var(--accent-soft)}.menu__item--danger{color:var(--danger)}.toolbar{align-items:center;gap:8px;margin-bottom:12px;display:flex}.search{border:1px solid var(--line);background:var(--card);border-radius:10px;flex:1;padding:10px 12px}.empty{text-align:center;color:var(--soft);padding:48px 16px}.empty__icon{color:var(--accent-light);justify-content:center;margin-bottom:8px;display:flex}.empty__title{font-family:var(--font-heading);color:var(--ink);margin:0 0 4px;font-size:18px}.empty__hint{margin:0}.form{flex-direction:column;gap:14px;display:flex}.form__row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.field{flex-direction:column;gap:4px;display:flex}.field__label{color:var(--soft);font-size:13px;font-weight:600}.field__input{border:1px solid var(--line);background:var(--card);border-radius:10px;width:100%;padding:11px 12px}.field__input:focus{outline:2px solid var(--accent-light);outline-offset:0;border-color:var(--accent)}.field--error .field__input{border-color:var(--danger)}.field__error{color:var(--danger);font-size:13px}.field__hint{color:var(--soft);font-size:12px}textarea.field__input{resize:vertical;min-height:72px}.coverpicker{align-items:center;gap:12px;display:flex}.coverpicker__preview{border-radius:10px;width:120px;height:120px;position:relative;overflow:hidden}.coverpicker__preview img{object-fit:cover;width:100%;height:100%}.coverpicker__remove{color:#fff;background:#00000080;width:30px;height:30px;position:absolute;top:4px;right:4px}.coverpicker__empty{border:1px dashed var(--accent-light);width:120px;height:120px;color:var(--soft);text-align:center;border-radius:10px;justify-content:center;align-items:center;font-size:13px;display:flex}.coverpicker__buttons{flex-direction:column;gap:8px;display:flex}.dialog{background:var(--card);max-width:min(92vw,420px);color:var(--ink);border:0;border-radius:16px;padding:20px;box-shadow:0 20px 60px #0000004d}.dialog::backdrop{background:#17201b73}.dialog__title{margin-bottom:8px;font-size:20px}.dialog__message{color:var(--soft);margin:0 0 16px}.dialog__actions{justify-content:flex-end;gap:8px;display:flex}.tabs{background:var(--card);border-bottom:1px solid var(--line);top:calc(60px + env(safe-area-inset-top));z-index:9;display:flex;position:sticky}.tabs__tab{color:var(--soft);background:0 0;border:0;border-bottom:3px solid #0000;flex:1;justify-content:center;align-items:center;gap:8px;padding:14px 8px;font-weight:600;display:flex}.tabs__tab.is-active{color:var(--accent-deep);border-bottom-color:var(--accent)}.strip{grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px;display:grid}.strip__tile{background:var(--accent);color:#fff;text-align:center;border-radius:12px;padding:10px 6px}.strip__value{font-family:var(--font-heading);font-size:22px;font-weight:700;line-height:1.1}.strip__label{opacity:.9;font-size:11px}.chiprow{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.chip{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:999px;align-items:center;gap:4px;padding:5px 12px;font-size:13px;font-weight:600;display:inline-flex}.chip--accent{border-color:var(--accent-light);color:var(--accent-deep)}.chip--green{border-color:var(--green);color:var(--green-deep)}.chip--danger{border-color:var(--danger);color:var(--danger)}.chip.is-selected{background:var(--accent);border-color:var(--accent);color:#fff}.chip--green.is-selected{background:var(--green);border-color:var(--green)}button.chip{cursor:pointer}.issuecard{gap:12px;padding:12px;display:flex}.issuecard__thumb{background:var(--accent-soft);border:0;border-radius:10px;flex:0 0 96px;height:120px;padding:0;position:relative;overflow:hidden}.issuecard__thumb img{object-fit:cover;width:100%;height:100%}.issuecard__nophoto{width:100%;height:100%;color:var(--accent-light);justify-content:center;align-items:center;display:flex}.issuecard__count{color:#fff;background:#17201bbf;border-radius:999px;align-items:center;gap:4px;padding:2px 7px;font-size:12px;font-weight:600;display:inline-flex;position:absolute;bottom:6px;right:6px}.issuecard__body{text-align:left;background:0 0;border:0;flex-direction:column;flex:1;align-items:flex-start;gap:6px;min-width:0;padding:0;display:flex}.issuecard__title{font-size:18px}.issuecard__chips{flex-wrap:wrap;gap:6px;display:flex}.issuecard__line{color:var(--ink);align-items:center;gap:6px;font-size:14px;display:flex}.issuecard__location{color:var(--soft);font-size:13px}.addrow{gap:8px;margin-bottom:12px;display:flex}.list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.listrow{align-items:center;gap:4px;padding:6px 6px 6px 14px;display:flex}.listrow__main{text-align:left;background:0 0;border:0;flex-direction:column;flex:1;align-items:flex-start;padding:8px 0;display:flex}.listrow__title{font-weight:600}.listrow__meta{color:var(--soft);font-size:13px}.photostrip{gap:10px;display:flex}.photostrip__add{flex-direction:column;gap:8px;display:flex}.photostrip__addbtn{border:2px solid var(--accent);width:56px;height:56px;color:var(--accent);background:var(--card);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;display:flex}.photostrip__scroller{flex:1;gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.photostrip__item{background:var(--accent-soft);border-radius:10px;flex:0 0 120px;height:120px;position:relative;overflow:hidden}.photostrip__item img{object-fit:cover;width:100%;height:100%}.photostrip__loading{background:var(--accent-soft);width:100%;height:100%}.photostrip__lead{background:var(--green);color:#fff;border-radius:6px;padding:2px 6px;font-size:11px;font-weight:700;position:absolute;top:6px;left:6px}.photostrip__btn{color:#fff;background:#17201ba6;border:0;border-radius:999px;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex;position:absolute}.photostrip__btn:disabled{opacity:.35}.photostrip__btn--remove{top:6px;right:6px}.photostrip__btn--edit{bottom:6px;right:6px}.photostrip__move{gap:4px;display:flex;position:absolute;bottom:6px;left:6px}.photostrip__move .photostrip__btn{position:static}.comments__head{align-items:center;gap:8px;margin-bottom:8px;display:flex}.comments__title{font-size:18px}.comment{background:var(--card);box-shadow:var(--shadow);border-radius:10px;padding:10px 12px}.comment__meta{color:var(--soft);font-size:12px}.markup{z-index:50;color:var(--ink);background:#17201b;flex-direction:column;display:flex;position:fixed;inset:0}.markup__stage{flex:1;min-height:0;position:relative;overflow:hidden}.markup__canvas{touch-action:none;width:100%;height:100%;display:block}.markup__bar{background:var(--card);padding:6px 10px calc(6px + env(safe-area-inset-bottom));border-top:1px solid var(--line);justify-content:space-between;align-items:center;display:flex}.markup__title{font-family:var(--font-heading);font-size:18px;font-weight:600}.markup__count{text-align:center;background:var(--accent-soft);min-width:22px;color:var(--accent-deep);border-radius:999px;margin-left:6px;padding:1px 6px;font-size:13px;display:inline-block}.mtool{background:var(--card);border-top:1px solid var(--line)}.mtool__row{align-items:center;gap:4px;padding:6px 8px;display:flex}.mtool__colors,.mtool__widths{align-items:center;gap:6px;display:flex}.mtool__color{border:2px solid var(--line);border-radius:999px;width:24px;height:24px;padding:0}.mtool__color.is-selected{border-color:var(--accent);box-shadow:inset 0 0 0 2px #fff}.mtool__width{border:1px solid var(--line);background:var(--card);border-radius:999px;justify-content:center;align-items:center;width:28px;height:28px;padding:0;display:inline-flex}.mtool__width span{background:var(--ink);border-radius:999px;display:block}.mtool__width.is-selected{border-color:var(--accent);background:var(--accent-soft)}.mtool__row .iconbtn{width:36px;height:36px;margin-left:auto}.mtool__row .iconbtn+.iconbtn{margin-left:0}.mtool__tools{justify-content:space-between}.mtool__tool{height:44px;color:var(--ink);background:0 0;border:0;border-radius:10px;flex:1;justify-content:center;align-items:center;display:inline-flex}.mtool__tool.is-selected{background:var(--accent);color:#fff}.toggle{align-items:center;gap:10px;padding:8px 0;display:flex}.toggle input{width:20px;height:20px;accent-color:var(--accent)}.progress{width:100%;height:10px;accent-color:var(--green)}.resultcard{border:2px solid var(--green);padding:14px}.resultcard__title{color:var(--green-deep);margin-bottom:4px;font-size:18px}.resultcard__actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.reportrow{align-items:center;gap:6px;padding:10px 6px 10px 14px;display:flex}.reportrow__main{flex:1;min-width:0}.reportrow__actions{display:flex}.settings{flex-direction:column;gap:24px;display:flex}.settings__section{flex-direction:column;gap:12px;display:flex}.settings__h{font-size:20px}.settings__h3{color:var(--soft);margin-bottom:6px;font-size:15px}.logopicker{align-items:center;gap:12px;display:flex}.logopicker__img{object-fit:contain;background:var(--card);border:1px solid var(--line);border-radius:8px;width:120px;height:60px;padding:6px}.toggle--compact{gap:4px;padding:0 4px;font-size:12px}.toggle--compact input{width:16px;height:16px}.sigpad{border:1px solid var(--line);background:#fff;border-radius:10px;position:relative;overflow:hidden}.sigpad__canvas{aspect-ratio:3;touch-action:none;width:100%;display:block}.sigpad__existing{object-fit:contain;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.restorebox{flex-direction:column;gap:8px;padding:14px;display:flex}.banner{background:var(--green-soft);color:var(--ink);border-radius:12px;align-items:center;gap:10px;margin:12px 16px 0;padding:10px 12px;font-size:14px;display:flex}.banner--update{background:var(--accent-soft)}.banner__text{flex:1}
