{"id":4,"date":"2026-07-05T10:05:37","date_gmt":"2026-07-05T10:05:37","guid":{"rendered":"http:\/\/floorspec.kimhwani.com\/?page_id=4"},"modified":"2026-07-06T12:40:36","modified_gmt":"2026-07-06T12:40:36","slug":"%ec%9d%b8%ed%85%8c%eb%a6%ac%ec%96%b4-%ea%b2%ac%ec%a0%81-%eb%8c%80%ec%8b%9c%eb%b3%b4%eb%93%9c","status":"publish","type":"page","link":"https:\/\/floorspec.kimhwani.com\/","title":{"rendered":"\ub300\uc2dc\ubcf4\ub4dc"},"content":{"rendered":"    <div class=\"hani-est alignfull\" id=\"haniEst\">\n      <style>\n        \/* ponytail: \ud480\ube14\ub9ac\ub4dc\ub294 \uc9c1\uc811 vw \uacc4\uc0b0 \ub300\uc2e0 \uc6cc\ub4dc\ud504\ub808\uc2a4 alignfull \ud45c\uc900 \ub9e4\ucee4\ub2c8\uc998\uc5d0 \ub9e1\uae40 \u2014 \ud14c\ub9c8 constrained \ub808\uc774\uc544\uc6c3\uacfc \ucda9\ub3cc \uc5c6\uc74c *\/\n        .hani-est{\n          box-sizing:border-box;font-family:'Malgun Gothic','Apple SD Gothic Neo',sans-serif;color:#2B2B26;\n          background:#F2F3F5;padding:14px 28px 32px;\n        }\n        .hani-est *{box-sizing:border-box;}\n        \/* \uc774 \ud398\uc774\uc9c0\ub294 \ub300\uc2dc\ubcf4\ub4dc \ud648\uc774\ub77c \uc6cc\ub4dc\ud504\ub808\uc2a4 \uae30\ubcf8 \uc81c\ubaa9\u00b7\ud5e4\ub354\u00b7\"\uba54\uc778\uc73c\ub85c\" \ubc84\ud2bc\uc774 \ubd88\ud544\uc694 \u2014 \uc0ac\uc774\ub4dc \uba54\ub274\uac00 \uc774\ubbf8 \uadf8 \uc5ed\ud560\uc744 \ud568 *\/\n        .wp-block-post-title{display:none;}\n        .wp-block-navigation{display:none;}\n        header.wp-block-template-part{display:none !important;}\n        main.wp-block-post-content, main.wp-block-group{margin-top:0 !important;}\n        main.wp-block-post-content > .wp-block-group, main.wp-block-group > .wp-block-group{padding-top:0 !important;}\n        .hani-est .hani-hub-title{font-size:17px;font-weight:700;margin:0 0 4px;}\n        .hani-est .hani-hub-sub{font-size:12px;color:#8A8275;margin:0 0 10px;}\n        .hani-est .hani-hub-grid{display:grid;grid-template-columns:repeat(auto-fit,260px);justify-content:center;gap:16px;margin-bottom:20px;}\n        @media (max-width:720px){.hani-est .hani-hub-grid{grid-template-columns:1fr;}}\n        .hani-est .hani-hub-card{\n          position:relative;overflow:hidden;display:flex;align-items:stretch;height:168px;\n          background:#fff;border:none;border-radius:16px;box-shadow:0 10px 22px rgba(43,43,38,.10);\n          text-align:left;text-decoration:none;color:#2B2B26;cursor:pointer;transition:.15s;\n        }\n        .hani-est .hani-hub-card:hover{box-shadow:0 14px 28px rgba(43,43,38,.16);transform:translateY(-3px);}\n        .hani-est .hani-hub-card .hub-card-body{flex:1;min-width:0;padding:18px 16px 14px 20px;display:flex;flex-direction:column;}\n        .hani-est .hani-hub-card .icon{font-size:22px;margin-bottom:8px;filter:grayscale(1);opacity:.72;}\n        .hani-est .hani-hub-card .name{font-size:13.5px;font-weight:700;color:#3C3C36;letter-spacing:.03em;line-height:1.35;min-height:2.4em;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid #E9E5DA;}\n        .hani-est .hani-hub-card .desc{font-size:11.5px;color:#ACA79C;line-height:1.7;}\n        .hani-est .hani-hub-card .hub-card-tab{width:15%;flex-shrink:0;background:var(--accent,#A98356);display:flex;justify-content:center;padding-top:16px;}\n        .hani-est .hani-hub-card .hub-card-tab .num{color:#fff;font-weight:700;font-size:15px;font-family:Arial,sans-serif;}\n        .hani-est .hani-card{background:#fff;border:1px solid #E5DFD3;border-radius:14px;padding:20px 22px;margin-bottom:18px;}\n        .hani-est .hani-card h2{font-size:16px;margin:0 0 14px;display:flex;align-items:center;gap:8px;}\n        .hani-est .hani-card h2 .tag{font-size:11px;font-weight:600;color:#6B4F3B;background:#F1E7D8;padding:2px 8px;border-radius:20px;}\n        .hani-est label{font-size:12.5px;color:#8A8275;font-weight:600;display:block;margin-bottom:4px;}\n        .hani-est input[type=number],.hani-est input[type=text]{width:100%;padding:8px 10px;border:1px solid #E5DFD3;border-radius:8px;font-size:14px;}\n        .hani-est .saved-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,280px));justify-content:center;gap:12px;}\n        .hani-est .saved-item{position:relative;overflow:hidden;border:1px solid #E5DFD3;border-radius:12px;padding:16px 14px 13px;background:#FDFCFA;}\n        .hani-est .saved-item::before{content:'';position:absolute;left:0;top:0;right:0;height:4px;background:var(--accent,#A98356);}\n        .hani-est .saved-item .type-label{font-size:10.5px;font-weight:700;color:var(--accent,#A98356);margin-bottom:5px;}\n        .hani-est .saved-item .site{font-size:13.5px;font-weight:700;margin-bottom:2px;}\n        .hani-est .saved-item .meta{font-size:11px;color:#8A8275;margin-bottom:12px;line-height:1.5;}\n        .hani-est .saved-item .bottom-row{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;}\n        .hani-est .saved-item .total{font-weight:700;font-size:13px;}\n        .hani-est .saved-item .btn-row{display:flex;gap:6px;}\n        .hani-est .save-row{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;}\n        .hani-est .save-row > div{flex:1;min-width:180px;}\n        .hani-est .hani-global-area{max-width:260px;}\n        .hani-est table.hani-proc{width:100%;border-collapse:collapse;font-size:13.5px;}\n        .hani-est table.hani-proc th{text-align:left;font-size:11.5px;color:#8A8275;padding:6px 8px;border-bottom:1px solid #E5DFD3;}\n        .hani-est table.hani-proc td{padding:8px;border-bottom:1px solid #F1EDE4;vertical-align:middle;}\n        .hani-est table.hani-proc td.num{text-align:right;}\n        .hani-est table.hani-proc input[type=number]{padding:6px 8px;font-size:13px;}\n        .hani-est table.hani-proc input.qty{width:80px;}\n        .hani-est table.hani-proc input.price{width:110px;}\n        .hani-est .row-off td{opacity:.4;}\n        .hani-est .subtotal{font-weight:700;}\n        .hani-est .chip-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px;}\n        .hani-est .chip{border:1px solid #E5DFD3;background:#FDFCFA;color:#6B4F3B;border-radius:20px;padding:6px 14px;font-size:12.5px;cursor:pointer;}\n        .hani-est .chip:hover{background:#F1E7D8;}\n        .hani-est .rm-btn{color:#B0503F;cursor:pointer;font-size:12px;background:none;border:none;padding:0;}\n        .hani-est .note{font-size:11.5px;color:#8A8275;margin-top:6px;}\n        .hani-est .hani-total-bar{\n          background:#6B4F3B;color:#fff;border-radius:14px;padding:14px 20px;margin-bottom:18px;\n          display:flex;justify-content:space-between;align-items:baseline;\n        }\n        .hani-est .hani-total-bar .label{font-size:13px;opacity:.8;}\n        .hani-est .hani-total-bar .value{font-size:22px;font-weight:700;}\n        #haniOtherSection{display:none;}\n        #haniOtherSection.show{display:block;}\n        #haniBrandSection{display:none;}\n        #haniBrandSection.show{display:block;}\n        .hani-est table.hani-proc tr.cat-row td{background:#F7F3EC;color:#8A6B45;font-weight:700;font-size:11.5px;padding:7px 8px;border-bottom:1px solid #E5DFD3;}\n        .hani-est .hani-side-menu{\n          position:fixed;left:0;top:0;height:100vh;width:220px;overflow-y:auto;z-index:40;\n          background:#1B2032;padding:24px 14px;box-shadow:0 0 30px rgba(15,18,30,.25);\n        }\n        .hani-est .hani-main{margin-left:250px;max-width:1240px;}\n        @media (max-width:900px){\n          .hani-est{padding:16px;}\n          .hani-est .hani-side-menu{position:static;width:100%;height:auto;box-shadow:none;margin-bottom:20px;}\n          .hani-est .hani-main{margin-left:0;max-width:none;}\n        }\n        .hani-est .hani-side-logo{display:flex;align-items:center;gap:10px;color:#fff;margin-bottom:22px;padding:0 10px 18px;border-bottom:1px solid rgba(255,255,255,.1);}\n        .hani-est .hani-side-logo .logo-badge{width:30px;height:30px;border-radius:8px;background:#C9A46A;color:#1B2032;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;flex-shrink:0;}\n        .hani-est .hani-side-logo .logo-text{font-weight:700;font-size:13px;letter-spacing:.02em;}\n        .hani-est .hani-side-nav{display:flex;flex-direction:column;gap:3px;}\n        .hani-est .hani-side-nav-item{\n          position:relative;display:flex;align-items:center;gap:11px;padding:11px 12px 11px 16px;border-radius:10px;\n          border:none;color:#8D93A8;font-size:13px;font-weight:500;\n          text-decoration:none;cursor:pointer;background:none;\n          width:100%;text-align:left;font-family:inherit;transition:.15s;\n        }\n        .hani-est .hani-side-nav-item svg{flex-shrink:0;opacity:.8;}\n        .hani-est .hani-side-nav-item:hover{color:#fff;background:rgba(255,255,255,.06);}\n        .hani-est .hani-side-nav-item.active{color:#fff;font-weight:700;background:#262C42;}\n        .hani-est .hani-side-nav-item.active::before{content:'';position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:2px;background:#C9A46A;}\n        .hani-est .hani-side-nav-item.active svg{opacity:1;color:#C9A46A;}\n        .hani-est .hani-welcome-bar{\n          background:#fff;border-radius:16px;padding:14px 22px;margin-bottom:12px;box-shadow:0 6px 16px rgba(43,43,38,.06);\n          display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;\n        }\n        .hani-est .hani-welcome-bar .welcome-title{\n          font-family:'Pretendard','Malgun Gothic','Apple SD Gothic Neo',sans-serif;\n          font-size:22px;font-weight:800;letter-spacing:-.01em;margin-bottom:2px;\n          background:linear-gradient(90deg,#C9A46A 0%,#A98356 45%,#1B2032 100%);\n          -webkit-background-clip:text;background-clip:text;color:transparent;\n        }\n        .hani-est .hani-welcome-bar .welcome-sub{font-size:11px;color:#8A8275;font-weight:600;letter-spacing:.14em;text-transform:uppercase;}\n        .hani-est .hani-search-box{position:relative;min-width:220px;}\n        .hani-est .hani-search-box input{\n          width:100%;padding:10px 14px 10px 36px;border:1px solid #E5DFD3;border-radius:20px;\n          font-size:13px;background:#F7F5F0;color:#2B2B26;font-family:inherit;\n        }\n        .hani-est .hani-search-box input:focus{outline:none;border-color:#A98356;background:#fff;}\n        .hani-est .hani-search-box svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#ACA79C;}\n        .hani-est .hani-stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,260px));justify-content:center;gap:10px;margin-bottom:12px;}\n        .hani-est .hani-stat-pill{display:flex;align-items:center;gap:12px;padding:9px 16px;border-radius:36px;color:#fff;box-shadow:0 8px 18px rgba(43,43,38,.12);}\n        .hani-est .hani-stat-pill .stat-icon{width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.22);display:flex;align-items:center;justify-content:center;flex-shrink:0;}\n        .hani-est .hani-stat-pill .stat-icon svg{width:16px;height:16px;}\n        .hani-est .hani-stat-pill .stat-label{font-size:10.5px;opacity:.9;font-weight:600;}\n        .hani-est .hani-stat-pill .stat-value{font-size:15px;font-weight:700;margin-top:1px;}\n      <\/style>\n\n      <nav class=\"hani-side-menu\">\n        <div class=\"hani-side-logo\">\n          <span class=\"logo-badge\">H<\/span>\n          <span class=\"logo-text\">HANY'S FLOW<\/span>\n        <\/div>\n        <div class=\"hani-side-nav\">\n          <a class=\"hani-side-nav-item active\" href=\"#haniTop\"><svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M3 10.5 12 3l9 7.5\"\/><path d=\"M5.5 9.5V20a1 1 0 0 0 1 1H10v-6h4v6h3.5a1 1 0 0 0 1-1V9.5\"\/><\/svg>\ub300\uc2dc\ubcf4\ub4dc \ud648<\/a>\n          <a class=\"hani-side-nav-item\" href=\"#haniSavedCard\"><svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M3 7a2 2 0 0 1 2-2h4.5l1.8 2H19a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7z\"\/><\/svg>\uc800\uc7a5\ub41c \uacac\uc801<\/a>\n          <a class=\"hani-side-nav-item\" href=\"https:\/\/floorspec.kimhwani.com\/wp-content\/plugins\/hani-estimate-dashboard\/modules\/floor-estimate.html\"><svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 3 3 8l9 5 9-5-9-5z\"\/><path d=\"M3 12l9 5 9-5\"\/><path d=\"M3 16l9 5 9-5\"\/><\/svg>\ub9c8\ub8e8 \uacac\uc801\uae30<\/a>\n          <a class=\"hani-side-nav-item\" href=\"https:\/\/floorspec.kimhwani.com\/wp-content\/plugins\/hani-estimate-dashboard\/modules\/wallpaper-estimate.html\"><svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"16\" rx=\"2\"\/><path d=\"M8 4v16M14 4v16\"\/><\/svg>\ub3c4\ubc30 \uacac\uc801\uae30<\/a>\n          <a class=\"hani-side-nav-item\" href=\"https:\/\/floorspec.kimhwani.com\/wp-content\/plugins\/hani-estimate-dashboard\/modules\/tile-estimate.html\"><svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 2.5c-2.8 3.8-6 7.4-6 11a6 6 0 0 0 12 0c0-3.6-3.2-7.2-6-11z\"\/><\/svg>\ud0c0\uc77c\u00b7\uc695\uc2e4 \uacac\uc801\uae30<\/a>\n          <button type=\"button\" class=\"hani-side-nav-item\" id=\"haniOtherToggleSide\"><svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\"\/><rect x=\"14\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\"\/><rect x=\"3\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\"\/><rect x=\"14\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\"\/><\/svg>\uae30\ud0c0 \uacf5\uc815<\/button>\n          <button type=\"button\" class=\"hani-side-nav-item\" id=\"haniBrandToggleSide\"><svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M3 10v4a1 1 0 0 0 1 1h2l4 4V5L6 9H4a1 1 0 0 0-1 1z\"\/><path d=\"M13.5 8a4 4 0 0 1 0 8\"\/><path d=\"M17 5a8 8 0 0 1 0 14\"\/><\/svg>\ube0c\ub79c\ub4dc \ub9c8\ucf00\ud305<\/button>\n          <a class=\"hani-side-nav-item\" href=\"https:\/\/floorspec.kimhwani.com\/wp-content\/plugins\/hani-estimate-dashboard\/modules\/kpi-dashboard.html\"><svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M4 21V10M12 21V4M20 21v-8\"\/><path d=\"M3 21h18\"\/><\/svg>KPI \ub300\uc2dc\ubcf4\ub4dc<\/a>\n          <a class=\"hani-side-nav-item\" href=\"https:\/\/floorspec.kimhwani.com\/wp-content\/plugins\/hani-estimate-dashboard\/modules\/site-tracker.html\"><svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"7\" width=\"18\" height=\"13\" rx=\"2\"\/><path d=\"M8 7V5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"\/><path d=\"M3 12h18\"\/><\/svg>\ud604\uc7a5 \uacac\uc801 \uc815\ub9ac<\/a>\n        <\/div>\n      <\/nav>\n\n      <div class=\"hani-main\" id=\"haniTop\">\n\n      <div class=\"hani-welcome-bar\">\n        <div>\n          <div class=\"welcome-title\">Design Agent Hany<\/div>\n          <div class=\"welcome-sub\">Interior Project Dashboard<\/div>\n        <\/div>\n        <div class=\"hani-search-box\">\n          <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"11\" cy=\"11\" r=\"7\"\/><path d=\"m21 21-4.3-4.3\"\/><\/svg>          <input type=\"text\" id=\"haniSearchInput\" placeholder=\"\uc800\uc7a5\ub41c \uacac\uc801\uc5d0\uc11c \ud604\uc7a5\uba85 \uac80\uc0c9\">\n        <\/div>\n      <\/div>\n\n      <div class=\"hani-stat-row\" id=\"haniStatRow\"><\/div>\n\n      <div class=\"hani-hub-title\">\uacf5\uc815\uc744 \uc120\ud0dd\ud558\uc138\uc694<\/div>\n      <div class=\"hani-hub-sub\">\ub9c8\ub8e8\u00b7\ub3c4\ubc30\ub294 \uc804\uc6a9 \uacac\uc801\uae30\ub85c \uc774\ub3d9\ud569\ub2c8\ub2e4. \uadf8 \uc678 \uacf5\uc815\uc740 \uc774 \ud398\uc774\uc9c0\uc5d0\uc11c \ubc14\ub85c \uacc4\uc0b0\ud569\ub2c8\ub2e4.<\/div>\n\n      <div class=\"hani-hub-grid\">\n        <a class=\"hani-hub-card\" style=\"--accent:#2F5D8A\" href=\"https:\/\/floorspec.kimhwani.com\/wp-content\/plugins\/hani-estimate-dashboard\/modules\/kpi-dashboard.html\">\n          <div class=\"hub-card-body\">\n            <div class=\"icon\"><svg width=\"26\" height=\"26\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M4 21V10M12 21V4M20 21v-8\"\/><path d=\"M3 21h18\"\/><\/svg><\/div>\n            <div class=\"name\">\ub808\ubc84\ub9ac\uc9c0 KPI \ub300\uc2dc\ubcf4\ub4dc<\/div>\n            <div class=\"desc\">\uc18c\ub4dd\ucc3d\ucd9c \uc5c5\ubb34<br>\ub808\ubc84\ub9ac\uc9c0 \uc778\ud504\ub77c<br>\uc704\uc784 \uc5c5\ubb34 \uad00\ub9ac<\/div>\n          <\/div>\n          <div class=\"hub-card-tab\"><span class=\"num\">1<\/span><\/div>\n        <\/a>\n        <a class=\"hani-hub-card\" style=\"--accent:#6E5A9E\" href=\"https:\/\/floorspec.kimhwani.com\/wp-content\/plugins\/hani-estimate-dashboard\/modules\/site-tracker.html\">\n          <div class=\"hub-card-body\">\n            <div class=\"icon\"><svg width=\"26\" height=\"26\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"7\" width=\"18\" height=\"13\" rx=\"2\"\/><path d=\"M8 7V5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"\/><path d=\"M3 12h18\"\/><\/svg><\/div>\n            <div class=\"name\">\ud604\uc7a5\ubcc4 \uacac\uc801\u00b7\uacc4\uc57d \uad00\ub9ac<\/div>\n            <div class=\"desc\">\ud604\uc7a5\ubcc4 \uacac\uc801 \ubc84\uc804 \uc774\ub825<br>\uc218\uc815 \uc694\uccad\u00b7\uacc4\uc57d \uc9c4\ud589 \uc0c1\ud0dc<br>\uc5d1\uc140\u00b7PDF \ub0b4\ubcf4\ub0b4\uae30<\/div>\n          <\/div>\n          <div class=\"hub-card-tab\"><span class=\"num\">2<\/span><\/div>\n        <\/a>\n        <a class=\"hani-hub-card\" style=\"--accent:#F2B134\" href=\"https:\/\/floorspec.kimhwani.com\/wp-content\/plugins\/hani-estimate-dashboard\/modules\/floor-estimate.html\">\n          <div class=\"hub-card-body\">\n            <div class=\"icon\"><svg width=\"26\" height=\"26\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 3 3 8l9 5 9-5-9-5z\"\/><path d=\"M3 12l9 5 9-5\"\/><path d=\"M3 16l9 5 9-5\"\/><\/svg><\/div>\n            <div class=\"name\">\ub9c8\ub8e8\uc2dc\uacf5 \uc790\ub3d9 \uacac\uc801\uae30<\/div>\n            <div class=\"desc\">\uac15\ub9c8\ub8e8\u00b7\uac15\ud654\ub9c8\ub8e8<br>\uc7a5\ud310\u00b7\ub370\ucf54\ud0c0\uc77c<br>\ube0c\ub79c\ub4dc\ubcc4 \ub2e8\uac00 \uc790\ub3d9 \uacc4\uc0b0<\/div>\n          <\/div>\n          <div class=\"hub-card-tab\"><span class=\"num\">3<\/span><\/div>\n        <\/a>\n        <a class=\"hani-hub-card\" style=\"--accent:#D97D42\" href=\"https:\/\/floorspec.kimhwani.com\/wp-content\/plugins\/hani-estimate-dashboard\/modules\/wallpaper-estimate.html\">\n          <div class=\"hub-card-body\">\n            <div class=\"icon\"><svg width=\"26\" height=\"26\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"16\" rx=\"2\"\/><path d=\"M8 4v16M14 4v16\"\/><\/svg><\/div>\n            <div class=\"name\">\ub3c4\ubc30(\ubcbd\uc9c0 \ud3ec\ud568) \uc790\ub3d9 \uacac\uc801\uae30<\/div>\n            <div class=\"desc\">\ud569\uc9c0\u00b7\uc2e4\ud06c<br>\ube0c\ub79c\ub4dc\ubcc4 \ub2e8\uac00<br>\ud604\uc7a5 \uc870\uac74 \ubc18\uc601 \uacc4\uc0b0<\/div>\n          <\/div>\n          <div class=\"hub-card-tab\"><span class=\"num\">4<\/span><\/div>\n        <\/a>\n        <a class=\"hani-hub-card\" style=\"--accent:#2E9E9E\" href=\"https:\/\/floorspec.kimhwani.com\/wp-content\/plugins\/hani-estimate-dashboard\/modules\/tile-estimate.html\">\n          <div class=\"hub-card-body\">\n            <div class=\"icon\"><svg width=\"26\" height=\"26\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 2.5c-2.8 3.8-6 7.4-6 11a6 6 0 0 0 12 0c0-3.6-3.2-7.2-6-11z\"\/><\/svg><\/div>\n            <div class=\"name\">\ud0c0\uc77c\u00b7\uc695\uc2e4 \uc790\ub3d9 \uacac\uc801\uae30<\/div>\n            <div class=\"desc\">\uc77c\ubc18 \ud0c0\uc77c\uc2dc\uacf5<br>\uc695\uc2e4 \uc804\uccb4 \uacf5\uc0ac(\ubc29\uc218\u00b7\ub3c4\uae30\u00b7\uc218\uc804\u00b7\uc695\uc870)<br>\uc2e4\uce21 \uba74\uc801\u00b7\ubc15\uc2a4 \uc218 \uc790\ub3d9 \uacc4\uc0b0<\/div>\n          <\/div>\n          <div class=\"hub-card-tab\"><span class=\"num\">5<\/span><\/div>\n        <\/a>\n        <div class=\"hani-hub-card\" id=\"haniOtherToggle\" style=\"--accent:#3AAFB9\">\n          <div class=\"hub-card-body\">\n            <div class=\"icon\"><svg width=\"26\" height=\"26\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\"\/><rect x=\"14\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\"\/><rect x=\"3\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\"\/><rect x=\"14\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\"\/><\/svg><\/div>\n            <div class=\"name\">\uae30\ud0c0 \uacf5\uc815 \uacac\uc801<\/div>\n            <div class=\"desc\">\ucca0\uac70\u00b7\uc804\uae30\u00b7\ubaa9\uacf5<br>\ud0c0\uc77c \ub4f1 \uae30\ubcf8 \uacf5\uc815<br>\ucd94\uac00 \uacf5\uc815 \uc790\uc720 \uc120\ud0dd<\/div>\n          <\/div>\n          <div class=\"hub-card-tab\"><span class=\"num\">6<\/span><\/div>\n        <\/div>\n        <div class=\"hani-hub-card\" id=\"haniBrandToggle\" style=\"--accent:#C2447A\">\n          <div class=\"hub-card-body\">\n            <div class=\"icon\"><svg width=\"26\" height=\"26\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M3 10v4a1 1 0 0 0 1 1h2l4 4V5L6 9H4a1 1 0 0 0-1 1z\"\/><path d=\"M13.5 8a4 4 0 0 1 0 8\"\/><path d=\"M17 5a8 8 0 0 1 0 14\"\/><\/svg><\/div>\n            <div class=\"name\">\ube0c\ub79c\ub4dc \ub9c8\ucf00\ud305 \uacac\uc801<\/div>\n            <div class=\"desc\">\ub85c\uace0\u00b7\uc0ac\uc778\ubb3c<br>\ub9ac\ube0c\ub79c\ub529<br>SNS\ub9c8\ucf00\ud305<\/div>\n          <\/div>\n          <div class=\"hub-card-tab\"><span class=\"num\">7<\/span><\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"hani-card\" id=\"haniSavedCard\">\n        <h2>\ucd5c\uadfc \uc800\uc7a5\ud55c \uacac\uc801 <span class=\"tag\">\ub2e4\uc74c \ud604\uc7a5 \ucc38\uace0\uc6a9<\/span><\/h2>\n        <div id=\"haniSavedList\" class=\"saved-grid\"><\/div>\n        <div class=\"note\" id=\"haniSavedEmptyNote\" style=\"display:none\">\uc544\uc9c1 \uc800\uc7a5\ub41c \uacac\uc801\uc774 \uc5c6\uc2b5\ub2c8\ub2e4. \uac01 \uacac\uc801\uae30\uc5d0\uc11c \"\uc774 \uacac\uc801 \uc800\uc7a5\ud558\uae30\"\ub97c \ub204\ub974\uba74 \uc5ec\uae30\uc5d0 \ubaa8\uc785\ub2c8\ub2e4.<\/div>\n      <\/div>\n\n      <div id=\"haniOtherSection\">\n        <div class=\"hani-total-bar\">\n          <div class=\"label\">\uae30\ud0c0 \uacf5\uc815 \ud569\uacc4<\/div>\n          <div class=\"value\" id=\"haniGrandTotal\">0\uc6d0<\/div>\n        <\/div>\n\n        <div class=\"hani-card save-row\">\n          <div>\n            <label>\ud604\uc7a5\uba85 \/ \uace0\uac1d\uba85<\/label>\n            <input type=\"text\" id=\"haniSiteName\" placeholder=\"\uc608: \uac15\ub0a8 OO\uc544\ud30c\ud2b8\">\n          <\/div>\n          <button type=\"button\" class=\"chip\" id=\"haniSaveOtherBtn\">\uc774 \uacac\uc801 \uc800\uc7a5\ud558\uae30 (\uc704 \ubaa9\ub85d\uc5d0 \ucd94\uac00)<\/button>\n        <\/div>\n\n        <div class=\"hani-card\">\n          <h2>\uc804\uccb4 \ud3c9\uc218 <span class=\"tag\">\uae30\ubcf8\/\ucd94\uac00 \uacf5\uc815 \uacf5\ud1b5 \uc785\ub825<\/span><\/h2>\n          <div class=\"hani-global-area\">\n            <label>\uc804\uccb4 \ud3c9\uc218 (\ud3c9)<\/label>\n            <input type=\"number\" id=\"haniGlobalPyeong\" value=\"24\" min=\"0\" step=\"1\">\n          <\/div>\n        <\/div>\n\n        <div class=\"hani-card\">\n          <h2>\uae30\ubcf8 \uacf5\uc815 <span class=\"tag\">\uccb4\ud06c \ud574\uc81c\ub85c \uc81c\uc678 \uac00\ub2a5<\/span><\/h2>\n          <table class=\"hani-proc\" id=\"haniBaseTable\">\n            <thead><tr><th><\/th><th>\uacf5\uc815<\/th><th>\uc218\ub7c9<\/th><th>\ub2e8\uc704<\/th><th>\ub2e8\uac00<\/th><th>\uc18c\uacc4<\/th><\/tr><\/thead>\n            <tbody>\n                            <tr data-id=\"demo\" data-unit=\"\ud3c9\">\n                <td><input type=\"checkbox\" class=\"row-toggle\" checked><\/td>\n                <td>\ucca0\uac70<\/td>\n                <td><input type=\"number\" class=\"qty\" value=\"24\" min=\"0\" step=\"1\"><\/td>\n                <td>\ud3c9<\/td>\n                <td><input type=\"number\" class=\"price\" value=\"70000\" min=\"0\" step=\"1000\"><\/td>\n                <td class=\"num subtotal\">0\uc6d0<\/td>\n              <\/tr>\n                            <tr data-id=\"mep\" data-unit=\"\ud3c9\">\n                <td><input type=\"checkbox\" class=\"row-toggle\" checked><\/td>\n                <td>\uc124\ube44(\ubc30\uad00)<\/td>\n                <td><input type=\"number\" class=\"qty\" value=\"24\" min=\"0\" step=\"1\"><\/td>\n                <td>\ud3c9<\/td>\n                <td><input type=\"number\" class=\"price\" value=\"60000\" min=\"0\" step=\"1000\"><\/td>\n                <td class=\"num subtotal\">0\uc6d0<\/td>\n              <\/tr>\n                            <tr data-id=\"elec\" data-unit=\"\ud3c9\">\n                <td><input type=\"checkbox\" class=\"row-toggle\" checked><\/td>\n                <td>\uc804\uae30<\/td>\n                <td><input type=\"number\" class=\"qty\" value=\"24\" min=\"0\" step=\"1\"><\/td>\n                <td>\ud3c9<\/td>\n                <td><input type=\"number\" class=\"price\" value=\"40000\" min=\"0\" step=\"1000\"><\/td>\n                <td class=\"num subtotal\">0\uc6d0<\/td>\n              <\/tr>\n                            <tr data-id=\"carp\" data-unit=\"\ud3c9\">\n                <td><input type=\"checkbox\" class=\"row-toggle\" checked><\/td>\n                <td>\ubaa9\uacf5<\/td>\n                <td><input type=\"number\" class=\"qty\" value=\"24\" min=\"0\" step=\"1\"><\/td>\n                <td>\ud3c9<\/td>\n                <td><input type=\"number\" class=\"price\" value=\"150000\" min=\"0\" step=\"1000\"><\/td>\n                <td class=\"num subtotal\">0\uc6d0<\/td>\n              <\/tr>\n                            <tr data-id=\"paint\" data-unit=\"\ud3c9\">\n                <td><input type=\"checkbox\" class=\"row-toggle\" checked><\/td>\n                <td>\ub3c4\uc7a5<\/td>\n                <td><input type=\"number\" class=\"qty\" value=\"24\" min=\"0\" step=\"1\"><\/td>\n                <td>\ud3c9<\/td>\n                <td><input type=\"number\" class=\"price\" value=\"50000\" min=\"0\" step=\"1000\"><\/td>\n                <td class=\"num subtotal\">0\uc6d0<\/td>\n              <\/tr>\n                            <tr data-id=\"tile\" data-unit=\"\ud3c9\">\n                <td><input type=\"checkbox\" class=\"row-toggle\" checked><\/td>\n                <td>\ud0c0\uc77c<\/td>\n                <td><input type=\"number\" class=\"qty\" value=\"24\" min=\"0\" step=\"1\"><\/td>\n                <td>\ud3c9<\/td>\n                <td><input type=\"number\" class=\"price\" value=\"180000\" min=\"0\" step=\"1000\"><\/td>\n                <td class=\"num subtotal\">0\uc6d0<\/td>\n              <\/tr>\n                            <tr data-id=\"film\" data-unit=\"\ud3c9\">\n                <td><input type=\"checkbox\" class=\"row-toggle\" checked><\/td>\n                <td>\ud544\ub984<\/td>\n                <td><input type=\"number\" class=\"qty\" value=\"24\" min=\"0\" step=\"1\"><\/td>\n                <td>\ud3c9<\/td>\n                <td><input type=\"number\" class=\"price\" value=\"60000\" min=\"0\" step=\"1000\"><\/td>\n                <td class=\"num subtotal\">0\uc6d0<\/td>\n              <\/tr>\n                            <tr data-id=\"kitchen\" data-unit=\"\uc2dd\">\n                <td><input type=\"checkbox\" class=\"row-toggle\" checked><\/td>\n                <td>\uc8fc\ubc29\uac00\uad6c<\/td>\n                <td><input type=\"number\" class=\"qty\" value=\"1\" min=\"0\" step=\"1\"><\/td>\n                <td>\uc2dd<\/td>\n                <td><input type=\"number\" class=\"price\" value=\"3500000\" min=\"0\" step=\"1000\"><\/td>\n                <td class=\"num subtotal\">0\uc6d0<\/td>\n              <\/tr>\n                            <tr data-id=\"bath\" data-unit=\"\uac1c\">\n                <td><input type=\"checkbox\" class=\"row-toggle\" checked><\/td>\n                <td>\uc695\uc2e4<\/td>\n                <td><input type=\"number\" class=\"qty\" value=\"1\" min=\"0\" step=\"1\"><\/td>\n                <td>\uac1c<\/td>\n                <td><input type=\"number\" class=\"price\" value=\"2800000\" min=\"0\" step=\"1000\"><\/td>\n                <td class=\"num subtotal\">0\uc6d0<\/td>\n              <\/tr>\n                            <tr data-id=\"clean\" data-unit=\"\ud3c9\">\n                <td><input type=\"checkbox\" class=\"row-toggle\" checked><\/td>\n                <td>\ud3d0\uae30\ubb3c\ucc98\ub9ac\/\uccad\uc18c<\/td>\n                <td><input type=\"number\" class=\"qty\" value=\"24\" min=\"0\" step=\"1\"><\/td>\n                <td>\ud3c9<\/td>\n                <td><input type=\"number\" class=\"price\" value=\"15000\" min=\"0\" step=\"1000\"><\/td>\n                <td class=\"num subtotal\">0\uc6d0<\/td>\n              <\/tr>\n                          <\/tbody>\n          <\/table>\n        <\/div>\n\n        <div class=\"hani-card\">\n          <h2>\ucd94\uac00 \uacf5\uc815 <span class=\"tag\">\ud544\uc694\ud55c \uac83\ub9cc \ubc84\ud2bc\uc73c\ub85c \ucd94\uac00<\/span><\/h2>\n          <div class=\"chip-list\" id=\"haniExtraChips\">\n                        <button type=\"button\" class=\"chip\" data-id=\"sash\" data-name=\"\uc0c8\uc2dc(\ucc3d\ud638)\" data-unit=\"\uac1c\" data-price=\"350000\">+ \uc0c8\uc2dc(\ucc3d\ud638)<\/button>\n                        <button type=\"button\" class=\"chip\" data-id=\"door2\" data-name=\"\uc911\ubb38 \uc124\uce58\" data-unit=\"\uac1c\" data-price=\"900000\">+ \uc911\ubb38 \uc124\uce58<\/button>\n                        <button type=\"button\" class=\"chip\" data-id=\"balcony\" data-name=\"\ubc1c\ucf54\ub2c8 \ud655\uc7a5\" data-unit=\"\ud3c9\" data-price=\"200000\">+ \ubc1c\ucf54\ub2c8 \ud655\uc7a5<\/button>\n                        <button type=\"button\" class=\"chip\" data-id=\"molding\" data-name=\"\ubab0\ub529\/\uac78\ub808\ubc1b\uc774 \uad50\uccb4\" data-unit=\"\ud3c9\" data-price=\"20000\">+ \ubab0\ub529\/\uac78\ub808\ubc1b\uc774 \uad50\uccb4<\/button>\n                        <button type=\"button\" class=\"chip\" data-id=\"light\" data-name=\"\uc870\uba85 \uad50\uccb4\" data-unit=\"\uac1c\" data-price=\"80000\">+ \uc870\uba85 \uad50\uccb4<\/button>\n                        <button type=\"button\" class=\"chip\" data-id=\"closet\" data-name=\"\ubd99\ubc15\uc774\uc7a5\" data-unit=\"\uc2dd\" data-price=\"1500000\">+ \ubd99\ubc15\uc774\uc7a5<\/button>\n                        <button type=\"button\" class=\"chip\" data-id=\"aircon\" data-name=\"\uc2dc\uc2a4\ud15c\uc5d0\uc5b4\ucee8 \ubc30\uad00\" data-unit=\"\uac1c\" data-price=\"300000\">+ \uc2dc\uc2a4\ud15c\uc5d0\uc5b4\ucee8 \ubc30\uad00<\/button>\n                        <button type=\"button\" class=\"chip\" data-id=\"door\" data-name=\"\ub3c4\uc5b4 \uad50\uccb4\" data-unit=\"\uac1c\" data-price=\"250000\">+ \ub3c4\uc5b4 \uad50\uccb4<\/button>\n                      <\/div>\n          <table class=\"hani-proc\" id=\"haniExtraTable\">\n            <thead><tr><th>\uacf5\uc815<\/th><th>\uc218\ub7c9<\/th><th>\ub2e8\uc704<\/th><th>\ub2e8\uac00<\/th><th>\uc18c\uacc4<\/th><th><\/th><\/tr><\/thead>\n            <tbody><\/tbody>\n          <\/table>\n          <div class=\"note\" id=\"haniExtraEmptyNote\">\ucd94\uac00\ub41c \uacf5\uc815\uc774 \uc5c6\uc2b5\ub2c8\ub2e4. \uc704 \ubc84\ud2bc\uc744 \ub20c\ub7ec \ucd94\uac00\ud558\uc138\uc694.<\/div>\n        <\/div>\n      <\/div>\n\n      <div id=\"haniBrandSection\">\n        <div class=\"hani-total-bar\">\n          <div class=\"label\">\ube0c\ub79c\ub4dc \ub9c8\ucf00\ud305 \ud569\uacc4<\/div>\n          <div class=\"value\" id=\"haniBrandGrandTotal\">0\uc6d0<\/div>\n        <\/div>\n\n        <div class=\"hani-card save-row\">\n          <div>\n            <label>\ube0c\ub79c\ub4dc\uba85 \/ \uace0\uac1d\uba85<\/label>\n            <input type=\"text\" id=\"haniBrandSiteName\" placeholder=\"\uc608: OO\uce74\ud398 \ub9ac\ube0c\ub79c\ub529\">\n          <\/div>\n          <button type=\"button\" class=\"chip\" id=\"haniSaveBrandBtn\">\uc774 \uacac\uc801 \uc800\uc7a5\ud558\uae30 (\uc704 \ubaa9\ub85d\uc5d0 \ucd94\uac00)<\/button>\n        <\/div>\n\n        <div class=\"hani-card\">\n          <h2>\ube0c\ub79c\ub4dc \ub9c8\ucf00\ud305 \ud56d\ubaa9 <span class=\"tag\">\uccb4\ud06c \ud574\uc81c\ub85c \uc81c\uc678, \uc218\ub7c9\u00b7\ub2e8\uac00 \uc9c1\uc811 \uc218\uc815 \uac00\ub2a5<\/span><\/h2>\n          <table class=\"hani-proc\" id=\"haniBrandTable\">\n            <thead><tr><th><\/th><th>\ud56d\ubaa9<\/th><th>\uc218\ub7c9<\/th><th>\ub2e8\uc704<\/th><th>\ub2e8\uac00<\/th><th>\uc18c\uacc4<\/th><\/tr><\/thead>\n            <tbody>\n                                            <tr class=\"cat-row\"><td colspan=\"6\">\ub85c\uace0<\/td><\/tr>\n                              <tr data-id=\"logo_basic\" data-unit=\"\uc2dd\">\n                <td><input type=\"checkbox\" class=\"row-toggle\" checked><\/td>\n                <td>\ub85c\uace0 \ub514\uc790\uc778 (\ubca0\uc774\uc9c1, \uc2dc\uc548 1~2\uac1c)<\/td>\n                <td><input type=\"number\" class=\"qty\" value=\"1\" min=\"0\" step=\"1\"><\/td>\n                <td>\uc2dd<\/td>\n                <td><input type=\"number\" class=\"price\" value=\"500000\" min=\"0\" step=\"10000\"><\/td>\n                <td class=\"num subtotal\">0\uc6d0<\/td>\n              <\/tr>\n                                            <tr data-id=\"logo_premium\" data-unit=\"\uc2dd\">\n                <td><input type=\"checkbox\" class=\"row-toggle\" checked><\/td>\n                <td>\ub85c\uace0 \ub514\uc790\uc778 (\ud504\ub9ac\ubbf8\uc5c4, \uc2dc\uc548 3~5\uac1c)<\/td>\n                <td><input type=\"number\" class=\"qty\" value=\"1\" min=\"0\" step=\"1\"><\/td>\n                <td>\uc2dd<\/td>\n                <td><input type=\"number\" class=\"price\" value=\"1500000\" min=\"0\" step=\"10000\"><\/td>\n                <td class=\"num subtotal\">0\uc6d0<\/td>\n              <\/tr>\n                                            <tr data-id=\"logo_bi\" data-unit=\"\uc2dd\">\n                <td><input type=\"checkbox\" class=\"row-toggle\" checked><\/td>\n                <td>BI\/CI \uac00\uc774\ub4dc\ub77c\uc778 \uc81c\uc791<\/td>\n                <td><input type=\"number\" class=\"qty\" value=\"1\" min=\"0\" step=\"1\"><\/td>\n                <td>\uc2dd<\/td>\n                <td><input type=\"number\" class=\"price\" value=\"800000\" min=\"0\" step=\"10000\"><\/td>\n                <td class=\"num subtotal\">0\uc6d0<\/td>\n              <\/tr>\n                                            <tr class=\"cat-row\"><td colspan=\"6\">\uc0ac\uc778\ubb3c<\/td><\/tr>\n                              <tr data-id=\"sign_design\" data-unit=\"\uc2dd\">\n                <td><input type=\"checkbox\" class=\"row-toggle\" checked><\/td>\n                <td>\uac04\ud310 \ub514\uc790\uc778<\/td>\n                <td><input type=\"number\" class=\"qty\" value=\"1\" min=\"0\" step=\"1\"><\/td>\n                <td>\uc2dd<\/td>\n                <td><input type=\"number\" class=\"price\" value=\"300000\" min=\"0\" step=\"10000\"><\/td>\n                <td class=\"num subtotal\">0\uc6d0<\/td>\n              <\/tr>\n                                            <tr data-id=\"sign_outdoor\" data-unit=\"\uac1c\">\n                <td><input type=\"checkbox\" class=\"row-toggle\" checked><\/td>\n                <td>\uc2e4\uc678 \uac04\ud310 \uc81c\uc791\u00b7\uc124\uce58 (\uae30\ubcf8\ud615)<\/td>\n                <td><input type=\"number\" class=\"qty\" value=\"1\" min=\"0\" step=\"1\"><\/td>\n                <td>\uac1c<\/td>\n                <td><input type=\"number\" class=\"price\" value=\"1500000\" min=\"0\" step=\"10000\"><\/td>\n                <td class=\"num subtotal\">0\uc6d0<\/td>\n              <\/tr>\n                                            <tr data-id=\"sign_indoor\" data-unit=\"\uac1c\">\n                <td><input type=\"checkbox\" class=\"row-toggle\" checked><\/td>\n                <td>\uc2e4\ub0b4 \uc0ac\uc778\ubb3c (\ud604\ud310\u00b7\ud45c\uc9c0\ud310 \ub4f1)<\/td>\n                <td><input type=\"number\" class=\"qty\" value=\"1\" min=\"0\" step=\"1\"><\/td>\n                <td>\uac1c<\/td>\n                <td><input type=\"number\" class=\"price\" value=\"200000\" min=\"0\" step=\"10000\"><\/td>\n                <td class=\"num subtotal\">0\uc6d0<\/td>\n              <\/tr>\n                                            <tr data-id=\"sign_wrap\" data-unit=\"\ub300\">\n                <td><input type=\"checkbox\" class=\"row-toggle\" checked><\/td>\n                <td>\ucc28\ub7c9 \ub798\ud551 \ub514\uc790\uc778<\/td>\n                <td><input type=\"number\" class=\"qty\" value=\"1\" min=\"0\" step=\"1\"><\/td>\n                <td>\ub300<\/td>\n                <td><input type=\"number\" class=\"price\" value=\"400000\" min=\"0\" step=\"10000\"><\/td>\n                <td class=\"num subtotal\">0\uc6d0<\/td>\n              <\/tr>\n                                            <tr class=\"cat-row\"><td colspan=\"6\">\ub9ac\ube0c\ub79c\ub529<\/td><\/tr>\n                              <tr data-id=\"rebrand_identity\" data-unit=\"\uc2dd\">\n                <td><input type=\"checkbox\" class=\"row-toggle\" checked><\/td>\n                <td>\ube0c\ub79c\ub4dc \uc544\uc774\ub374\ud2f0\ud2f0 \ub9ac\ub274\uc5bc<\/td>\n                <td><input type=\"number\" class=\"qty\" value=\"1\" min=\"0\" step=\"1\"><\/td>\n                <td>\uc2dd<\/td>\n                <td><input type=\"number\" class=\"price\" value=\"3000000\" min=\"0\" step=\"10000\"><\/td>\n                <td class=\"num subtotal\">0\uc6d0<\/td>\n              <\/tr>\n                                            <tr data-id=\"rebrand_naming\" data-unit=\"\uc2dd\">\n                <td><input type=\"checkbox\" class=\"row-toggle\" checked><\/td>\n                <td>\ub124\uc774\ubc0d\u00b7\uc2ac\ub85c\uac74 \uac1c\ubc1c<\/td>\n                <td><input type=\"number\" class=\"qty\" value=\"1\" min=\"0\" step=\"1\"><\/td>\n                <td>\uc2dd<\/td>\n                <td><input type=\"number\" class=\"price\" value=\"1000000\" min=\"0\" step=\"10000\"><\/td>\n                <td class=\"num subtotal\">0\uc6d0<\/td>\n              <\/tr>\n                                            <tr data-id=\"rebrand_guide\" data-unit=\"\uc2dd\">\n                <td><input type=\"checkbox\" class=\"row-toggle\" checked><\/td>\n                <td>\ube0c\ub79c\ub4dc \uac00\uc774\ub4dc\ubd81 \uc81c\uc791<\/td>\n                <td><input type=\"number\" class=\"qty\" value=\"1\" min=\"0\" step=\"1\"><\/td>\n                <td>\uc2dd<\/td>\n                <td><input type=\"number\" class=\"price\" value=\"1200000\" min=\"0\" step=\"10000\"><\/td>\n                <td class=\"num subtotal\">0\uc6d0<\/td>\n              <\/tr>\n                                            <tr class=\"cat-row\"><td colspan=\"6\">SNS\ub9c8\ucf00\ud305<\/td><\/tr>\n                              <tr data-id=\"sns_setup\" data-unit=\"\uc2dd\">\n                <td><input type=\"checkbox\" class=\"row-toggle\" checked><\/td>\n                <td>SNS \ucc44\ub110 \uc138\ud305 (\uc778\uc2a4\ud0c0\uadf8\ub7a8\u00b7\ube14\ub85c\uadf8)<\/td>\n                <td><input type=\"number\" class=\"qty\" value=\"1\" min=\"0\" step=\"1\"><\/td>\n                <td>\uc2dd<\/td>\n                <td><input type=\"number\" class=\"price\" value=\"300000\" min=\"0\" step=\"10000\"><\/td>\n                <td class=\"num subtotal\">0\uc6d0<\/td>\n              <\/tr>\n                                            <tr data-id=\"sns_content\" data-unit=\"\uc6d4\">\n                <td><input type=\"checkbox\" class=\"row-toggle\" checked><\/td>\n                <td>\uc6d4 \ucf58\ud150\uce20 \uc81c\uc791 (4\uac74\/\uc6d4)<\/td>\n                <td><input type=\"number\" class=\"qty\" value=\"1\" min=\"0\" step=\"1\"><\/td>\n                <td>\uc6d4<\/td>\n                <td><input type=\"number\" class=\"price\" value=\"800000\" min=\"0\" step=\"10000\"><\/td>\n                <td class=\"num subtotal\">0\uc6d0<\/td>\n              <\/tr>\n                                            <tr data-id=\"sns_influencer\" data-unit=\"\uac74\">\n                <td><input type=\"checkbox\" class=\"row-toggle\" checked><\/td>\n                <td>\uc778\ud50c\ub8e8\uc5b8\uc11c \ud611\uc5c5 \ub9c8\ucf00\ud305<\/td>\n                <td><input type=\"number\" class=\"qty\" value=\"1\" min=\"0\" step=\"1\"><\/td>\n                <td>\uac74<\/td>\n                <td><input type=\"number\" class=\"price\" value=\"1500000\" min=\"0\" step=\"10000\"><\/td>\n                <td class=\"num subtotal\">0\uc6d0<\/td>\n              <\/tr>\n                                            <tr data-id=\"sns_ad\" data-unit=\"\uc6d4\">\n                <td><input type=\"checkbox\" class=\"row-toggle\" checked><\/td>\n                <td>SNS \uad11\uace0 \uc6b4\uc601 \ub300\ud589 (\uc6d4)<\/td>\n                <td><input type=\"number\" class=\"qty\" value=\"1\" min=\"0\" step=\"1\"><\/td>\n                <td>\uc6d4<\/td>\n                <td><input type=\"number\" class=\"price\" value=\"500000\" min=\"0\" step=\"10000\"><\/td>\n                <td class=\"num subtotal\">0\uc6d0<\/td>\n              <\/tr>\n                          <\/tbody>\n          <\/table>\n          <div class=\"note\">\ub2e8\uac00\ub294 2026\ub144 \uad6d\ub0b4 \uc18c\uaddc\ubaa8 \ube0c\ub79c\ub529\u00b7\ub9c8\ucf00\ud305 \ub300\ud589\uc0ac \uacac\uc801 \uae30\uc900\uc758 \uae30\ubcf8\uac12\uc785\ub2c8\ub2e4. \uc2e4\uc81c \ud611\uc0c1 \uacb0\uacfc\uc5d0 \ub9de\uac8c \ub2e8\uac00 \uce78\uc744 \uc9c1\uc811 \uc218\uc815\ud558\uc138\uc694.<\/div>\n        <\/div>\n      <\/div>\n\n      <\/div>\n    <\/div>\n\n    <script src=\"https:\/\/floorspec.kimhwani.com\/wp-content\/plugins\/hani-estimate-dashboard\/modules\/estimate-store.js\"><\/script>\n    <script>\n    (function(){\n      var root = document.getElementById('haniEst');\n      var MODULE_BASE = \"https:\\\/\\\/floorspec.kimhwani.com\\\/wp-content\\\/plugins\\\/hani-estimate-dashboard\\\/modules\\\/\";\n\n      function won(n){ return Math.round(n).toLocaleString() + '\uc6d0'; }\n\n      function toggleOtherSection(){\n        var section = document.getElementById('haniOtherSection');\n        section.classList.toggle('show');\n        if (section.classList.contains('show')) section.scrollIntoView({behavior:'smooth', block:'start'});\n      }\n      document.getElementById('haniOtherToggle').addEventListener('click', toggleOtherSection);\n      document.getElementById('haniOtherToggleSide').addEventListener('click', toggleOtherSection);\n\n      function toggleBrandSection(){\n        var section = document.getElementById('haniBrandSection');\n        section.classList.toggle('show');\n        if (section.classList.contains('show')) section.scrollIntoView({behavior:'smooth', block:'start'});\n      }\n      document.getElementById('haniBrandToggle').addEventListener('click', toggleBrandSection);\n      document.getElementById('haniBrandToggleSide').addEventListener('click', toggleBrandSection);\n\n      function baseTotal(){\n        var sum = 0;\n        root.querySelectorAll('#haniBaseTable tbody tr').forEach(function(row){\n          var on = row.querySelector('.row-toggle').checked;\n          var qty = parseFloat(row.querySelector('.qty').value) || 0;\n          var price = parseFloat(row.querySelector('.price').value) || 0;\n          var subtotal = on ? qty * price : 0;\n          row.querySelector('.subtotal').textContent = won(subtotal);\n          row.classList.toggle('row-off', !on);\n          sum += subtotal;\n        });\n        return sum;\n      }\n\n      function extraTotal(){\n        var sum = 0;\n        root.querySelectorAll('#haniExtraTable tbody tr').forEach(function(row){\n          var qty = parseFloat(row.querySelector('.qty').value) || 0;\n          var price = parseFloat(row.querySelector('.price').value) || 0;\n          var subtotal = qty * price;\n          row.querySelector('.subtotal').textContent = won(subtotal);\n          sum += subtotal;\n        });\n        document.getElementById('haniExtraEmptyNote').style.display =\n          root.querySelectorAll('#haniExtraTable tbody tr').length ? 'none' : 'block';\n        return sum;\n      }\n\n      function brandTotal(){\n        var sum = 0;\n        root.querySelectorAll('#haniBrandTable tbody tr[data-id]').forEach(function(row){\n          var on = row.querySelector('.row-toggle').checked;\n          var qty = parseFloat(row.querySelector('.qty').value) || 0;\n          var price = parseFloat(row.querySelector('.price').value) || 0;\n          var subtotal = on ? qty * price : 0;\n          row.querySelector('.subtotal').textContent = won(subtotal);\n          row.classList.toggle('row-off', !on);\n          sum += subtotal;\n        });\n        return sum;\n      }\n\n      function recalc(){\n        var grand = baseTotal() + extraTotal();\n        document.getElementById('haniGrandTotal').textContent = won(grand);\n        document.getElementById('haniBrandGrandTotal').textContent = won(brandTotal());\n      }\n\n      root.addEventListener('input', function(e){\n        if (e.target.matches('#haniBaseTable input, #haniExtraTable input, #haniBrandTable input')) recalc();\n      });\n      root.addEventListener('change', function(e){\n        if (e.target.matches('#haniBaseTable input, #haniBrandTable input')) recalc();\n      });\n\n      \/\/ \uc804\uccb4 \ud3c9\uc218 \u2192 \uae30\ubcf8\/\ucd94\uac00 \uacf5\uc815\uc758 \"\ud3c9\" \ub2e8\uc704 \ud56d\ubaa9 \uae30\ubcf8\uac12\uc73c\ub85c \ubc18\uc601\n      document.getElementById('haniGlobalPyeong').addEventListener('input', function(){\n        var py = parseFloat(this.value) || 0;\n        root.querySelectorAll('#haniBaseTable tbody tr[data-unit=\"\ud3c9\"], #haniExtraTable tbody tr[data-unit=\"\ud3c9\"]').forEach(function(row){\n          row.querySelector('.qty').value = py;\n        });\n        recalc();\n      });\n\n      \/\/ \ucd94\uac00 \uacf5\uc815 \uce69 \ud074\ub9ad \u2192 \ud589 \ucd94\uac00\n      document.getElementById('haniExtraChips').addEventListener('click', function(e){\n        var chip = e.target.closest('.chip');\n        if (!chip) return;\n        var id = chip.getAttribute('data-id');\n        var tbody = document.querySelector('#haniExtraTable tbody');\n        if (tbody.querySelector('tr[data-id=\"' + id + '\"]')) return; \/\/ \uc774\ubbf8 \ucd94\uac00\ub428\n        var unit = chip.getAttribute('data-unit');\n        var defaultQty = unit === '\ud3c9' ? (parseFloat(document.getElementById('haniGlobalPyeong').value) || 0) : 1;\n        var tr = document.createElement('tr');\n        tr.setAttribute('data-id', id);\n        tr.setAttribute('data-unit', unit);\n        tr.innerHTML =\n          '<td>' + chip.getAttribute('data-name') + '<\/td>' +\n          '<td><input type=\"number\" class=\"qty\" value=\"' + defaultQty + '\" min=\"0\" step=\"1\"><\/td>' +\n          '<td>' + unit + '<\/td>' +\n          '<td><input type=\"number\" class=\"price\" value=\"' + chip.getAttribute('data-price') + '\" min=\"0\" step=\"1000\"><\/td>' +\n          '<td class=\"num subtotal\">0\uc6d0<\/td>' +\n          '<td><button type=\"button\" class=\"rm-btn\">\uc0ad\uc81c<\/button><\/td>';\n        tbody.appendChild(tr);\n        recalc();\n      });\n\n      document.getElementById('haniExtraTable').addEventListener('click', function(e){\n        if (e.target.matches('.rm-btn')) {\n          e.target.closest('tr').remove();\n          recalc();\n        }\n      });\n\n      \/\/ \uacac\uc801 \uc800\uc7a5\/\ubd88\ub7ec\uc624\uae30 (\uae30\ud0c0\uacf5\uc815)\n      function buildOtherPayload(){\n        var base = [];\n        root.querySelectorAll('#haniBaseTable tbody tr').forEach(function(row){\n          base.push({\n            id: row.getAttribute('data-id'),\n            checked: row.querySelector('.row-toggle').checked,\n            qty: row.querySelector('.qty').value,\n            price: row.querySelector('.price').value\n          });\n        });\n        var extra = [];\n        root.querySelectorAll('#haniExtraTable tbody tr').forEach(function(row){\n          extra.push({\n            id: row.getAttribute('data-id'),\n            unit: row.getAttribute('data-unit'),\n            name: row.children[0].textContent,\n            qty: row.querySelector('.qty').value,\n            price: row.querySelector('.price').value\n          });\n        });\n        return {\n          globalPyeong: document.getElementById('haniGlobalPyeong').value,\n          base: base,\n          extra: extra\n        };\n      }\n\n      function applyOtherPayload(payload){\n        document.getElementById('haniGlobalPyeong').value = payload.globalPyeong;\n        (payload.base || []).forEach(function(b){\n          var row = root.querySelector('#haniBaseTable tbody tr[data-id=\"' + b.id + '\"]');\n          if (!row) return;\n          row.querySelector('.row-toggle').checked = b.checked;\n          row.querySelector('.qty').value = b.qty;\n          row.querySelector('.price').value = b.price;\n        });\n        var extraBody = root.querySelector('#haniExtraTable tbody');\n        extraBody.innerHTML = '';\n        (payload.extra || []).forEach(function(e){\n          var tr = document.createElement('tr');\n          tr.setAttribute('data-id', e.id);\n          tr.setAttribute('data-unit', e.unit);\n          tr.innerHTML =\n            '<td>' + e.name + '<\/td>' +\n            '<td><input type=\"number\" class=\"qty\" value=\"' + e.qty + '\" min=\"0\" step=\"1\"><\/td>' +\n            '<td>' + e.unit + '<\/td>' +\n            '<td><input type=\"number\" class=\"price\" value=\"' + e.price + '\" min=\"0\" step=\"1000\"><\/td>' +\n            '<td class=\"num subtotal\">0\uc6d0<\/td>' +\n            '<td><button type=\"button\" class=\"rm-btn\">\uc0ad\uc81c<\/button><\/td>';\n          extraBody.appendChild(tr);\n        });\n        var section = document.getElementById('haniOtherSection');\n        section.classList.add('show');\n        section.scrollIntoView({behavior:'smooth', block:'start'});\n        recalc();\n      }\n\n      document.getElementById('haniSaveOtherBtn').addEventListener('click', function(){\n        if (!window.HaniEstimateStore) return;\n        var siteName = document.getElementById('haniSiteName').value.trim() || '(\uc774\ub984\uc5c6\uc74c)';\n        var grand = baseTotal() + extraTotal();\n        var procNames = [];\n        root.querySelectorAll('#haniBaseTable tbody tr').forEach(function(row){\n          if (row.querySelector('.row-toggle').checked) procNames.push(row.children[1].textContent);\n        });\n        root.querySelectorAll('#haniExtraTable tbody tr').forEach(function(row){\n          procNames.push(row.children[0].textContent);\n        });\n        window.HaniEstimateStore.saveOne({\n          type: 'other',\n          siteName: siteName,\n          total: grand,\n          summary: '\uae30\ud0c0\uacf5\uc815 \u00b7 ' + (procNames.length ? procNames.join(', ') : '\uc120\ud0dd \uc5c6\uc74c'),\n          payload: buildOtherPayload()\n        });\n        renderSavedList();\n        var btn = document.getElementById('haniSaveOtherBtn');\n        var orig = btn.textContent;\n        btn.textContent = '\uc800\uc7a5\ub418\uc5c8\uc2b5\ub2c8\ub2e4';\n        setTimeout(function(){ btn.textContent = orig; }, 1500);\n      });\n\n      \/\/ \uacac\uc801 \uc800\uc7a5\/\ubd88\ub7ec\uc624\uae30 (\ube0c\ub79c\ub4dc \ub9c8\ucf00\ud305)\n      function buildBrandPayload(){\n        var items = [];\n        root.querySelectorAll('#haniBrandTable tbody tr[data-id]').forEach(function(row){\n          items.push({\n            id: row.getAttribute('data-id'),\n            checked: row.querySelector('.row-toggle').checked,\n            qty: row.querySelector('.qty').value,\n            price: row.querySelector('.price').value\n          });\n        });\n        return { items: items };\n      }\n\n      function applyBrandPayload(payload){\n        (payload.items || []).forEach(function(b){\n          var row = root.querySelector('#haniBrandTable tbody tr[data-id=\"' + b.id + '\"]');\n          if (!row) return;\n          row.querySelector('.row-toggle').checked = b.checked;\n          row.querySelector('.qty').value = b.qty;\n          row.querySelector('.price').value = b.price;\n        });\n        var section = document.getElementById('haniBrandSection');\n        section.classList.add('show');\n        section.scrollIntoView({behavior:'smooth', block:'start'});\n        recalc();\n      }\n\n      document.getElementById('haniSaveBrandBtn').addEventListener('click', function(){\n        if (!window.HaniEstimateStore) return;\n        var siteName = document.getElementById('haniBrandSiteName').value.trim() || '(\uc774\ub984\uc5c6\uc74c)';\n        var grand = brandTotal();\n        var itemNames = [];\n        root.querySelectorAll('#haniBrandTable tbody tr[data-id]').forEach(function(row){\n          if (row.querySelector('.row-toggle').checked) itemNames.push(row.children[1].textContent);\n        });\n        window.HaniEstimateStore.saveOne({\n          type: 'brand',\n          siteName: siteName,\n          total: grand,\n          summary: '\ube0c\ub79c\ub4dc\ub9c8\ucf00\ud305 \u00b7 ' + (itemNames.length ? itemNames.join(', ') : '\uc120\ud0dd \uc5c6\uc74c'),\n          payload: buildBrandPayload()\n        });\n        renderSavedList();\n        var btn = document.getElementById('haniSaveBrandBtn');\n        var orig = btn.textContent;\n        btn.textContent = '\uc800\uc7a5\ub418\uc5c8\uc2b5\ub2c8\ub2e4';\n        setTimeout(function(){ btn.textContent = orig; }, 1500);\n      });\n\n      function escText(s){\n        var d = document.createElement('div');\n        d.textContent = s == null ? '' : s;\n        return d.innerHTML;\n      }\n\n      var TYPE_STYLE = {\n        floor:     { label: '\ud83e\udeb5 \ub9c8\ub8e8',     accent: '#B5824C', bg: '#F6EEE2' },\n        wallpaper: { label: '\ud83e\uddfb \ub3c4\ubc30',     accent: '#A97C86', bg: '#F5EAEC' },\n        other:     { label: '\ud83e\uddf1 \uae30\ud0c0\uacf5\uc815', accent: '#6E7B8C', bg: '#ECEEF0' },\n        site:      { label: '\ud83c\udfe2 \ud604\uc7a5\uad00\ub9ac', accent: '#6E5A9E', bg: '#EEEAF4' },\n        brand:     { label: '\ud83d\udce2 \ube0c\ub79c\ub4dc\ub9c8\ucf00\ud305', accent: '#C2447A', bg: '#F7E7EF' }\n      };\n\n      var STAT_ICONS = {\n        clipboard: '<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"6\" y=\"4\" width=\"12\" height=\"16\" rx=\"2\"\/><path d=\"M9 3.5h6a.5.5 0 0 1 .5.5v1.5h-7V4a.5.5 0 0 1 .5-.5z\"\/><path d=\"M9 10h6M9 14h6\"\/><\/svg>',\n        calendar: '<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"5\" width=\"18\" height=\"16\" rx=\"2\"\/><path d=\"M3 9.5h18M8 3v4M16 3v4\"\/><\/svg>',\n        layers: '<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 3 3 8l9 5 9-5-9-5z\"\/><path d=\"M3 12l9 5 9-5\"\/><\/svg>',\n        coin: '<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"9\"\/><text x=\"12\" y=\"16\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#fff\" stroke=\"none\" font-family=\"Arial\">\u20a9<\/text><\/svg>'\n      };\n\n      var SITE_TRACKER_KEY = 'osd_site_quote_tracker_v1';\n      function loadSiteTrackerDB(){\n        try{\n          var raw = localStorage.getItem(SITE_TRACKER_KEY);\n          return raw ? JSON.parse(raw) : { sites: [] };\n        }catch(e){ return { sites: [] }; }\n      }\n      function siteTrackerStatus(site){\n        if(site.contract) return '\uacc4\uc57d\uc644\ub8cc';\n        if(!site.versions || !site.versions.length) return '\ucd08\uc548';\n        return site.versions[site.versions.length-1].status;\n      }\n      function siteTrackerLatestAmount(site){\n        if(site.contract) return site.contract.amount;\n        if(!site.versions || !site.versions.length) return null;\n        return site.versions[site.versions.length-1].amount;\n      }\n      function siteTrackerUpdatedAt(site){\n        if(site.contract) return site.contract.date;\n        if(!site.versions || !site.versions.length) return site.createdAt;\n        return site.versions[site.versions.length-1].date;\n      }\n      function siteTrackerRecords(){\n        return (loadSiteTrackerDB().sites || []).map(function(s){\n          return {\n            id: s.id, type: 'site', siteName: s.name,\n            date: siteTrackerUpdatedAt(s) || s.createdAt,\n            summary: '\ud604\uc7a5 \uad00\ub9ac \u00b7 ' + siteTrackerStatus(s),\n            total: siteTrackerLatestAmount(s)\n          };\n        });\n      }\n\n      function renderStats(){\n        var sites = loadSiteTrackerDB().sites || [];\n        var total = sites.length;\n        var inProgress = sites.filter(function(s){ return siteTrackerStatus(s) !== '\uacc4\uc57d\uc644\ub8cc'; }).length;\n        var done = sites.filter(function(s){ return siteTrackerStatus(s) === '\uacc4\uc57d\uc644\ub8cc'; }).length;\n        var thisMonth = new Date().toISOString().slice(0,7);\n        var doneThisMonth = sites.filter(function(s){\n          return s.contract && s.contract.date && s.contract.date.slice(0,7) === thisMonth;\n        }).length;\n\n        var stats = [\n          { grad: 'linear-gradient(135deg,#2ED48B,#12A06D)', icon: STAT_ICONS.clipboard, label: '\uc804\uccb4 \ud604\uc7a5', value: total + '\uac74' },\n          { grad: 'linear-gradient(135deg,#4FA8F5,#2E7FD1)', icon: STAT_ICONS.calendar, label: '\uc9c4\ud589 \uc911', value: inProgress + '\uac74' },\n          { grad: 'linear-gradient(135deg,#F0587A,#D63B63)', icon: STAT_ICONS.layers, label: '\uacc4\uc57d \uc644\ub8cc', value: done + '\uac74' },\n          { grad: 'linear-gradient(135deg,#FFB648,#F2941A)', icon: STAT_ICONS.coin, label: '\uc774\ubc88 \ub2ec \uacc4\uc57d', value: doneThisMonth + '\uac74' }\n        ];\n        var row = document.getElementById('haniStatRow');\n        row.innerHTML = stats.map(function(s){\n          return '<div class=\"hani-stat-pill\" style=\"background:' + s.grad + '\">' +\n            '<span class=\"stat-icon\">' + s.icon + '<\/span>' +\n            '<span><span class=\"stat-label\">' + s.label + '<\/span>' +\n            '<div class=\"stat-value\">' + s.value + '<\/div><\/span><\/div>';\n        }).join('');\n      }\n\n      function renderSavedList(){\n        renderStats();\n        var list = (window.HaniEstimateStore ? window.HaniEstimateStore.loadAll() : []).concat(siteTrackerRecords());\n        list.sort(function(a, b){ return new Date(b.date) - new Date(a.date); });\n        var term = document.getElementById('haniSearchInput').value.trim().toLowerCase();\n        if (term) {\n          list = list.filter(function(rec){\n            return (rec.siteName || '').toLowerCase().indexOf(term) !== -1 ||\n                   (rec.summary || '').toLowerCase().indexOf(term) !== -1;\n          });\n        }\n        var wrap = document.getElementById('haniSavedList');\n        var emptyNote = document.getElementById('haniSavedEmptyNote');\n        wrap.innerHTML = '';\n        emptyNote.style.display = list.length ? 'none' : 'block';\n        emptyNote.textContent = term\n          ? '\uac80\uc0c9 \uacb0\uacfc\uac00 \uc5c6\uc2b5\ub2c8\ub2e4.'\n          : '\uc544\uc9c1 \uc800\uc7a5\ub41c \uacac\uc801\uc774 \uc5c6\uc2b5\ub2c8\ub2e4. \uac01 \uacac\uc801\uae30\uc5d0\uc11c \"\uc774 \uacac\uc801 \uc800\uc7a5\ud558\uae30\"\ub97c \ub204\ub974\uba74 \uc5ec\uae30\uc5d0 \ubaa8\uc785\ub2c8\ub2e4.';\n        list.slice(0, 15).forEach(function(rec){\n          var style = TYPE_STYLE[rec.type] || TYPE_STYLE.other;\n          var item = document.createElement('div');\n          item.className = 'saved-item';\n          item.style.setProperty('--accent', style.accent);\n          item.style.setProperty('--accent-bg', style.bg);\n          item.innerHTML =\n            '<div class=\"type-label\">' + style.label + '<\/div>' +\n            '<div class=\"site\">' + escText(rec.siteName) + '<\/div>' +\n            '<div class=\"meta\">' + window.HaniEstimateStore.fmtDate(rec.date) + ' \u00b7 ' + escText(rec.summary) + '<\/div>' +\n            '<div class=\"bottom-row\"><span class=\"total\">' + window.HaniEstimateStore.fmtWon(rec.total) + '<\/span>' +\n            '<span class=\"btn-row\"><button type=\"button\" class=\"chip load-btn\">\ubd88\ub7ec\uc624\uae30<\/button>' +\n            '<button type=\"button\" class=\"rm-btn del-btn\">\uc0ad\uc81c<\/button><\/span><\/div>';\n          item.querySelector('.load-btn').addEventListener('click', function(){\n            if (rec.type === 'site') {\n              location.href = MODULE_BASE + 'site-tracker.html';\n            } else if (rec.type === 'other') {\n              applyOtherPayload(rec.payload);\n            } else if (rec.type === 'brand') {\n              applyBrandPayload(rec.payload);\n            } else {\n              var page = rec.type === 'floor' ? 'floor-estimate.html' : 'wallpaper-estimate.html';\n              location.href = MODULE_BASE + page + '?load=' + encodeURIComponent(rec.id);\n            }\n          });\n          item.querySelector('.del-btn').addEventListener('click', function(){\n            if (rec.type === 'site') {\n              if (!confirm('\uc774 \ud604\uc7a5\uc758 \uacac\uc801 \uae30\ub85d\uc744 \ubaa8\ub450 \uc0ad\uc81c\ud560\uae4c\uc694? \ub418\ub3cc\ub9b4 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.')) return;\n              var trackerDb = loadSiteTrackerDB();\n              trackerDb.sites = (trackerDb.sites || []).filter(function(s){ return s.id !== rec.id; });\n              localStorage.setItem(SITE_TRACKER_KEY, JSON.stringify(trackerDb));\n            } else {\n              window.HaniEstimateStore.removeOne(rec.id);\n            }\n            renderSavedList();\n          });\n          wrap.appendChild(item);\n        });\n      }\n\n      document.getElementById('haniSearchInput').addEventListener('input', renderSavedList);\n\n      renderSavedList();\n      recalc();\n    })();\n    <\/script>\n    \n","protected":false},"excerpt":{"rendered":"","protected":false},"author":0,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-4","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/floorspec.kimhwani.com\/index.php?rest_route=\/wp\/v2\/pages\/4","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/floorspec.kimhwani.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/floorspec.kimhwani.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"replies":[{"embeddable":true,"href":"https:\/\/floorspec.kimhwani.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4"}],"version-history":[{"count":2,"href":"https:\/\/floorspec.kimhwani.com\/index.php?rest_route=\/wp\/v2\/pages\/4\/revisions"}],"predecessor-version":[{"id":10,"href":"https:\/\/floorspec.kimhwani.com\/index.php?rest_route=\/wp\/v2\/pages\/4\/revisions\/10"}],"wp:attachment":[{"href":"https:\/\/floorspec.kimhwani.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}