:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#1f2937;background:#f3f4f6}*{box-sizing:border-box}body{margin:0}header{background:#111827;color:white;padding:14px 22px;display:flex;justify-content:space-between;align-items:center}header span{margin-left:10px;color:#9ca3af}header a{color:white;text-decoration:none}main{max-width:1250px;margin:auto;padding:22px}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px}.btn{display:inline-block;background:#111827;color:#fff;border:0;border-radius:9px;padding:11px 16px;text-decoration:none;font-size:15px;cursor:pointer}.btn.secondary{background:#fff;color:#111827;border:1px solid #d1d5db}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.card{background:#fff;padding:18px;border-radius:12px;text-decoration:none;color:inherit;box-shadow:0 1px 4px #0001}.stats{display:flex;justify-content:space-between;color:#6b7280}.form{background:#fff;padding:20px;border-radius:12px;max-width:900px}.form label{display:block;font-weight:600;margin-bottom:14px}.form input,.form select,.form textarea{width:100%;padding:12px;border:1px solid #d1d5db;border-radius:8px;margin-top:6px;font-size:17px}.form textarea{min-height:90px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.grid5{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.hint{background:#fffbeb;padding:10px;border-radius:8px;color:#92400e}.filters{display:flex;gap:8px;overflow:auto;margin:15px 0}.chip{padding:8px 12px;background:#fff;border-radius:999px;text-decoration:none;color:#374151;white-space:nowrap}.chip.active{background:#111827;color:white}.tablewrap{overflow:auto;background:#fff;border-radius:12px}table{border-collapse:collapse;width:100%;min-width:1000px}th,td{padding:12px;border-bottom:1px solid #e5e7eb;text-align:left;white-space:nowrap}.actions{display:flex;gap:10px}.actions form{display:inline}.actions button{border:0;background:none;color:#b91c1c;cursor:pointer}.flash{background:#dcfce7;padding:12px;border-radius:8px;margin-bottom:15px}.empty{text-align:center;padding:30px;color:#6b7280}.buttons{display:flex;gap:10px}@media(max-width:700px){main{padding:14px}.toolbar{align-items:flex-start;flex-direction:column}.grid2,.grid5{grid-template-columns:1fr 1fr}.grid5 label:last-child{grid-column:span 2}.btn{margin-bottom:6px}header span{display:none}}
.header-right{display:flex;align-items:center;gap:14px}.header-right select{padding:7px 9px;border-radius:7px;border:1px solid #4b5563;background:#fff}.measure-row{display:grid;grid-template-columns:170px 1fr 44px;gap:10px;margin-bottom:10px}.measure-row select,.measure-row input{margin-top:0}.remove-btn{border:1px solid #fecaca;background:#fff;color:#b91c1c;border-radius:8px;font-size:22px;cursor:pointer}.add-btn{margin:4px 0 18px}.direction-row{margin-top:4px}.item-list{display:flex;flex-wrap:wrap;gap:7px}.item-pill{display:inline-flex;align-items:center;gap:6px;background:#f3f4f6;border-radius:8px;padding:6px 9px}.item-pill small{color:#6b7280}@media(max-width:700px){.measure-row{grid-template-columns:120px 1fr 40px}.header-right{gap:8px}.header-right select{max-width:120px}}
.measure-head{display:grid;grid-template-columns:58px 170px 1fr 44px;gap:10px;margin:0 0 8px;font-weight:600;color:#4b5563}.measure-row{grid-template-columns:58px 170px 1fr 44px}.row-number{display:flex;align-items:center;justify-content:center;border:1px solid #d1d5db;border-radius:8px;background:#f9fafb;font-weight:700;user-select:none}.value-wrap{position:relative}.value-wrap input{padding-right:38px}.degree-symbol{display:none;position:absolute;right:14px;top:50%;transform:translateY(-50%);font-size:18px;font-weight:700;color:#374151;pointer-events:none}.value-wrap.is-degree .degree-symbol{display:block}@media(max-width:700px){.measure-head{grid-template-columns:44px 110px 1fr 40px;font-size:13px}.measure-row{grid-template-columns:44px 110px 1fr 40px}}
/* V3.2 Final Fix 3: Inch/mm/degree entry */
.value-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center}
.value-wrap input{min-width:0;margin-top:0!important}
.fraction-select{display:none!important;width:92px!important;margin-top:0!important;padding-left:10px!important;padding-right:28px!important}
.unit-symbol{display:none;font-weight:700;color:#374151;min-width:24px;text-align:left}
.value-wrap.is-inch .fraction-select,.value-wrap.is-inch .inch-symbol{display:block!important}
.value-wrap.is-mm .mm-symbol,.value-wrap.is-degree .degree-symbol{display:block!important;position:static;transform:none}
@media(max-width:700px){.fraction-select{width:78px!important}.value-wrap{gap:5px}}


/* V3.2 Final Fix 4: mobile entry layout */
@media(max-width:700px){
  header{padding:10px 12px;gap:8px;align-items:flex-start}
  header>div:first-child{min-width:0;line-height:1.25}
  header b{font-size:14px;display:block;overflow-wrap:anywhere}
  .header-right{flex-shrink:0;gap:6px;flex-direction:column;align-items:flex-end}
  .header-right select{max-width:105px;font-size:13px;padding:6px}
  main{padding:10px}
  h1{font-size:22px;margin:10px 0 14px}
  .form{padding:14px;border-radius:10px;width:100%;overflow:hidden}
  .grid2{grid-template-columns:1fr 1fr;gap:10px}
  .form input,.form select,.form textarea{font-size:16px;padding:11px 10px}
  .hint{font-size:14px;line-height:1.45;margin:14px 0}
  .measure-head{display:none}
  .measure-row{
    display:grid;
    grid-template-columns:44px minmax(0,1fr) 44px;
    grid-template-areas:
      "number type remove"
      ". value value";
    gap:8px;
    padding:10px 0;
    margin:0;
    border-bottom:1px solid #e5e7eb;
  }
  .measure-row>.row-number{grid-area:number;min-height:46px}
  .measure-row>select[name="item_type[]"]{grid-area:type;width:100%;min-width:0;height:46px}
  .measure-row>.value-wrap{grid-area:value;width:100%;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) 92px 28px;gap:6px}
  .measure-row>.remove-btn{grid-area:remove;width:44px;height:46px}
  .value-wrap input{width:100%;min-width:0;height:46px}
  .fraction-select{width:92px!important;height:46px}
  .unit-symbol{min-width:24px;font-size:16px}
  .add-btn{width:100%;margin-top:12px}
  .direction-row{grid-template-columns:1fr;margin-top:12px}
  .buttons{flex-direction:column;margin-top:12px}
  .buttons .btn{width:100%;margin:0}
}
@media(max-width:390px){
  .grid2{grid-template-columns:1fr}
  .measure-row>.value-wrap{grid-template-columns:minmax(0,1fr) 82px 24px}
  .fraction-select{width:82px!important}
}

.network-banner{position:sticky;top:0;z-index:30;padding:9px 14px;text-align:center;font-weight:700;font-size:14px;border-bottom:1px solid rgba(0,0,0,.08)}
.network-banner.online{background:#dcfce7;color:#166534}.network-banner.offline{background:#fff7ed;color:#9a3412}
.offline-card{max-width:560px;margin:40px auto;background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:24px;box-shadow:0 10px 30px rgba(15,23,42,.08)}

/* R5 Full Offline + server-aware controls */
.online-only.disabled,[data-online-only].disabled{opacity:.42!important;filter:grayscale(.65);pointer-events:auto;cursor:not-allowed}
.offline-progress{position:sticky;top:0;z-index:29;background:#eff6ff;color:#1e3a8a;padding:9px 14px;text-align:center;font-weight:700;border-bottom:1px solid #bfdbfe}
.offline-progress progress{display:block;width:min(520px,92%);height:9px;margin:6px auto 0}
