:root {font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif; color:#22332f; background:#f3f6f3; --green:#236d50; --ink:#22332f; --muted:#6c7c73; --line:#dbe5dc; --light:#e5f2e9;}
*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:default}.app{max-width:680px;margin:auto;padding:16px 14px 110px}.top{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:5px 0 15px}.title{font-size:24px;letter-spacing:-.7px;font-weight:760;margin:0}.sub{font-size:12px;color:var(--muted);margin:4px 0 0}.panel{background:white;border:1px solid var(--line);border-radius:16px;padding:15px;margin-bottom:13px;box-shadow:0 3px 15px #13291a08}.btn{border:1px solid var(--line);background:white;color:var(--ink);border-radius:11px;padding:10px 13px;font-weight:650;min-height:40px}.btn:focus-visible,.num:focus-visible,.key:focus-visible{outline:3px solid #96cda6}.btn.primary{background:var(--green);border-color:var(--green);color:white}.btn.small{font-size:13px;padding:7px 10px;min-height:34px}.btn.ghost{border-color:transparent;background:transparent}.btn.danger{color:#a12e30;background:#fff9f8;border-color:#f5d1cf}.actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.muted{color:var(--muted)}.status{font-size:12px;border:1px solid var(--line);background:#f5f8f5;padding:5px 9px;border-radius:20px}.status.good{color:#16613c;background:#e7f5ea;border-color:#ccebd1}.status.bad{color:#9c3636;background:#fff1f1;border-color:#f2cdcd}.status.warn{color:#98601f;background:#fff8ed;border-color:#f0dfc9}.search{width:100%;height:44px;padding:0 14px;border:1px solid var(--line);border-radius:10px;background:#fff}.territories{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.tile{display:flex;flex-direction:column;gap:5px;align-items:center;justify-content:center;min-height:75px;border:1px solid var(--line);border-radius:11px;background:white;font-weight:740;font-size:19px;color:var(--ink)}.tile small{font-size:10px;font-weight:500;color:var(--muted)}.tile:hover{border-color:var(--green)}.street-list{display:flex;flex-direction:column;gap:7px;max-height:245px;overflow:auto}.street{display:flex;align-items:center;gap:7px;padding:6px;border-radius:9px;border:1px solid var(--line);background:#fff}.street.active{background:var(--light);border-color:#99c5ab}.street-main{min-width:0;flex:1;text-align:left;border:0;background:none;font-weight:650;padding:7px 3px;overflow:hidden;text-overflow:ellipsis}.street button:not(.street-main){font-size:13px}.field{display:flex;flex-direction:column;gap:5px;margin:10px 0}.field label{font-size:13px;font-weight:600}.field input,.field textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:11px 12px;background:white}.field textarea{min-height:76px;resize:vertical}.map-area{position:relative;min-height:155px;background:#f0f4f0;border-radius:12px;display:flex;justify-content:center;align-items:center;color:var(--muted);overflow:hidden}.map-img{display:block;max-width:100%;width:100%;height:auto;max-height:380px;object-fit:contain}.map-rotate{position:absolute;right:9px;top:9px;background:#ffffffef;border:1px solid #dae5da;border-radius:999px;width:36px;height:36px;box-shadow:0 2px 7px #0002;font-size:22px;line-height:1}.tabset{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:#edf3ed;border-radius:11px;padding:4px;margin:12px 0}.tab{border:0;background:transparent;color:#5e7463;border-radius:8px;padding:10px;font-weight:750}.tab.active{color:white;background:var(--green)}.rows{padding-bottom:8px}.address-row{display:grid;grid-template-columns:115px 1fr 40px;gap:7px;align-items:center;margin:3px 0}.num{height:45px;background:white;border:2px solid #dde7df;border-radius:10px;text-align:center;font-size:21px;font-weight:750;width:100%;color:#1b3326}.num.selected{border-color:#208656;box-shadow:0 0 0 3px #2ca66628}.language{height:43px;background:#fff;border:1px solid var(--line);border-radius:9px;width:100%;font-size:13px;padding:0 6px}.notes-btn{height:42px;border:1px solid var(--line);border-radius:9px;background:white;color:#546c5e}.notes-btn.has-notes{background:#eaf4ea;color:#1d734e}.insert-line{height:15px;display:flex;align-items:center;justify-content:flex-end;margin:2px 0 3px}.insert-line:before{content:"";height:1px;background:#e4ece5;flex:1}.plus{height:23px;min-width:33px;border:0;background:#24875a;color:white;border-radius:6px;margin-left:5px;font-weight:750;font-size:19px;line-height:18px}.sheet-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.note{font-size:12px;color:var(--muted);margin:10px 0 0}.keyboard{position:fixed;bottom:0;left:0;right:0;background:#e7f0e7;border-top:1px solid #b7d6c1;padding:10px max(12px,env(safe-area-inset-left)) calc(12px + env(safe-area-inset-bottom));z-index:60;box-shadow:0 -10px 22px #172e1a24}.keyboard-inner{max-width:420px;margin:auto}.keyboard-label{display:flex;justify-content:space-between;gap:8px;font-size:13px;font-weight:750;margin-bottom:8px;color:#225b3d}.keys{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.key{background:#fff;border:1px solid #b4d5c0;border-radius:10px;height:49px;font-weight:760;font-size:23px;color:#1d623c}.key.green{background:#267749;border-color:#267749;color:#fff}.key.dim{background:#d2e8d7}.key:active{background:#b0d2bd}.key.green:active{background:#1a5936}.modal-shade{position:fixed;inset:0;z-index:75;background:#112419a3;display:flex;align-items:center;justify-content:center;padding:14px}.modal{background:white;border-radius:17px;padding:19px;width:min(100%,440px);max-height:90vh;overflow:auto;box-shadow:0 10px 38px #10271c44}.modal h2{margin:0 0 9px;font-size:21px}.modal .actions{margin-top:15px;justify-content:flex-end}.alert{background:#fff6e5;color:#80561b;border:1px solid #f1dfbb;border-radius:9px;padding:10px 12px;font-size:13px;line-height:1.4;margin:9px 0}.error{background:#ffefef;color:#a33d3d;border-color:#efc4c4}.loading{padding:50px 15px;text-align:center;color:var(--muted)}.empty{padding:15px;background:#f5f8f5;border:1px dashed #c7d7cc;border-radius:12px;color:var(--muted);font-size:13px;text-align:center}.version{font-size:11px;color:#93a198;text-align:center;padding:20px 0}.hidden{display:none!important}
@media(max-width:370px){.address-row{grid-template-columns:100px 1fr 36px;gap:5px}.territories{grid-template-columns:repeat(3,1fr)}}@media(min-width:540px){.territories{grid-template-columns:repeat(6,1fr)}}
