:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#1c2930;background:#f5f6f3;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #a7c8ff;outline-offset:2px}.app-shell{display:grid;grid-template-columns:242px minmax(0,1fr);min-height:100vh}.sidebar{background:#f9faf8;border-right:1px solid #e1e6e1;padding:25px 14px;display:flex;flex-direction:column;gap:26px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;padding:0 11px;font-weight:800;font-size:17px;letter-spacing:-.035em}.brandmark{background:#153f34;color:#f2fff7;border-radius:11px;display:grid;place-items:center;width:34px;height:34px;font-weight:800;box-shadow:0 5px 12px #153f342a}.side-label{padding:0 13px;color:#89948e;font-size:11px;font-weight:750;letter-spacing:.12em;text-transform:uppercase;margin-bottom:7px}.nav{display:flex;flex-direction:column;gap:3px}.nav a,.nav button{display:flex;align-items:center;gap:12px;width:100%;padding:11px 13px;border:0;background:transparent;border-radius:9px;text-align:left;color:#5e6c65;font-size:13px;font-weight:620}.nav a:hover,.nav button:hover{background:#eaf0eb;color:#123e31}.nav .active{background:#e7f0e9;color:#0e6545}.nav .ico{font-size:17px;width:19px;text-align:center;opacity:.85}.sidebar-bottom{margin-top:auto;border-top:1px solid #e5eae5;padding-top:15px}.help-card{background:#eaf0e9;border:1px solid #dbe8db;border-radius:13px;padding:13px;color:#3f5e4d;font-size:12px;line-height:1.5}.help-card strong{display:block;color:#1f4936;margin-bottom:5px}.main{min-width:0}.topbar{height:68px;border-bottom:1px solid #e3e8e3;background:#ffffffd9;display:flex;align-items:center;justify-content:space-between;padding:0 34px;gap:16px;position:sticky;top:0;z-index:4;backdrop-filter:blur(12px)}.crumb{display:flex;align-items:center;gap:8px;color:#8a968f;font-size:13px}.crumb b{color:#273e34;font-weight:700}.top-actions{display:flex;align-items:center;gap:9px}.avatar{background:#e5ede5;color:#36604a;border-radius:50%;width:31px;height:31px;display:grid;place-items:center;font-size:12px;font-weight:800}.content{padding:34px;max-width:1540px;margin:auto}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.13em;color:#68947b;text-transform:uppercase;margin-bottom:9px}.page-title{font-size:29px;letter-spacing:-.05em;line-height:1.18;margin:0;color:#1a3329}.subtitle{color:#78857e;font-size:13px;line-height:1.6;margin:9px 0 0}.page-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:26px}.actions{display:flex;gap:9px;flex-wrap:wrap}.btn{border:1px solid #dce4dc;background:white;color:#344d3e;padding:9px 14px;border-radius:9px;font-size:12px;font-weight:700;min-height:37px;display:inline-flex;align-items:center;justify-content:center;gap:7px}.btn:hover{border-color:#aac8b0;background:#f8fbf8}.btn.primary{background:#19744d;border-color:#19744d;color:white;box-shadow:0 4px 11px #19744d24}.btn.primary:hover{background:#0b6240}.btn.danger{color:#a64343;border-color:#efcdcd}.btn.tiny{padding:5px 8px;min-height:27px;font-size:11px}.btn.ghost{background:transparent;border-color:transparent}.panel{background:white;border:1px solid #e1e7e1;border-radius:14px;box-shadow:0 2px 8px #1e403208}.panel.pad{padding:22px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:23px}.stat{padding:19px 20px;background:white;border:1px solid #e1e7e1;border-radius:13px}.stat .label{font-size:11px;font-weight:700;color:#809087}.stat .value{font-size:26px;font-weight:800;letter-spacing:-.045em;margin-top:8px}.stat .hint{font-size:11px;color:#98a49b;margin-top:4px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.project-card{display:flex;flex-direction:column;gap:17px;min-height:188px;padding:22px;cursor:pointer;transition:transform .16s,border-color .16s}.project-card:hover{transform:translateY(-3px);border-color:#9fc2ab}.project-card h3{margin:2px 0 5px;font-size:17px;letter-spacing:-.025em}.project-card p{color:#7c8b82;font-size:12px;line-height:1.55;margin:0}.card-top{display:flex;align-items:start;justify-content:space-between}.card-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:auto;color:#829087;font-size:11px}.badge{display:inline-flex;align-items:center;padding:5px 8px;border-radius:6px;background:#eff3ef;color:#67776b;font-size:10px;font-weight:800;white-space:nowrap}.badge.approved,.badge.selesai{background:#e0f5e8;color:#187347}.badge.dikerjakan{background:#e3eeff;color:#2d66a8}.badge.gagal{background:#ffe9e8;color:#b14b4b}.badge.belum_mulai{background:#eff2ef;color:#68756d}.progress{height:6px;border-radius:100px;background:#e9eee9;overflow:hidden}.progress span{display:block;height:100%;background:#3a9e6c;border-radius:100px}.section-row{display:flex;justify-content:space-between;align-items:center;margin:25px 0 13px}.section-title{font-size:15px;font-weight:780;letter-spacing:-.02em}.muted{color:#8b9a90}.empty{padding:56px 22px;text-align:center;color:#839087}.empty .symbol{font-size:30px;margin-bottom:13px}.empty h3{color:#304b39;margin:0 0 6px}.empty p{font-size:13px;line-height:1.6;max-width:440px;margin:0 auto 18px}.tabs{display:flex;gap:3px;border-bottom:1px solid #dfe7df;margin-bottom:20px;overflow:auto}.tabs button{border:0;background:transparent;color:#829087;padding:13px 17px;font-size:12px;font-weight:700;border-bottom:2px solid transparent;white-space:nowrap}.tabs button.active{color:#156e48;border-bottom-color:#258b5e}.two-col{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:18px}.editor{width:100%;min-height:520px;padding:20px;border:1px solid #dce6dc;border-radius:10px;resize:vertical;color:#263b2f;background:#fbfcfb;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;line-height:1.65}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:14px}.field label{font-size:11px;font-weight:800;color:#597063}.field input,.field textarea,.field select{width:100%;border:1px solid #dce5dd;background:white;border-radius:8px;padding:10px 12px;color:#263b2f;font-size:13px}.field textarea{resize:vertical;min-height:90px}.field small{font-size:11px;color:#92a097}.md{line-height:1.7;color:#3a4b41;font-size:13px}.md h1,.md h2,.md h3{color:#1b3b2b;line-height:1.25;margin:1.5em 0 .55em;letter-spacing:-.025em}.md h1{font-size:23px}.md h2{font-size:18px}.md h3{font-size:15px}.md h1:first-child{margin-top:0}.md p{margin:.7em 0}.md ul{padding-left:22px}.md li{margin:4px 0}.md code{background:#edf3ec;padding:2px 4px;border-radius:4px}.md pre{background:#1e3028;color:#edf5ef;overflow:auto;padding:15px;border-radius:8px}.md pre code{background:none}.md blockquote{margin:15px 0;border-left:3px solid #8dbb9d;padding:2px 15px;color:#6b7d70;background:#f7faf6}.split-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.phase-list{display:flex;flex-direction:column;gap:13px}.phase-card{padding:17px 19px}.phase-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.phase-num{color:#5f9e76;font-size:10px;letter-spacing:.12em;font-weight:850}.phase-card h3{font-size:16px;margin:5px 0}.phase-card p{margin:0 0 12px;color:#829087;font-size:12px}.task-line{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #edf0ed;padding:10px 0;gap:12px;font-size:12px}.task-line .ref{font-family:monospace;color:#91a095;margin-right:7px}.task-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-title:hover{color:#157449;cursor:pointer}.filter-row{display:flex;align-items:center;gap:9px;margin-bottom:17px;flex-wrap:wrap}.filter-row input,.filter-row select{border:1px solid #dce5dd;background:white;padding:9px 12px;border-radius:8px;font-size:12px;min-height:37px}.filter-row input{min-width:220px;flex:1}.kanban{display:grid;grid-template-columns:repeat(4,minmax(230px,1fr));gap:12px;overflow-x:auto}.kanban-col{background:#f0f3ef;border:1px solid #e3e9e2;border-radius:12px;padding:11px;min-height:350px}.kanban-head{display:flex;justify-content:space-between;align-items:center;padding:5px 4px 14px;font-size:12px;font-weight:800}.count{color:#809187;background:white;border-radius:6px;padding:3px 7px;font-size:11px}.kanban-card{border:1px solid #e1e7e1;border-radius:9px;background:white;padding:13px;margin-bottom:9px;box-shadow:0 2px 5px #1e403208}.kanban-card .k-ref{color:#8c9d91;font-size:10px;font-family:monospace}.kanban-card h4{font-size:12px;line-height:1.45;margin:6px 0 9px}.kanban-card p{color:#8a998e;font-size:11px;margin:0 0 10px}.kanban-card select,.table select{border:1px solid #e3e9e3;border-radius:6px;padding:5px 6px;background:#fbfcfb;color:#445a49;font-size:11px;width:100%}.table-wrap{overflow:auto}.table{border-collapse:collapse;width:100%;font-size:12px}.table th{text-align:left;background:#f8faf8;color:#839087;font-size:11px;font-weight:800;padding:12px}.table td{padding:12px;border-top:1px solid #ecf0ec;vertical-align:middle}.table td.title{font-weight:700;cursor:pointer}.table td.title:hover{color:#16744b}.table select{width:132px}.tree-scroll{overflow:auto;padding:25px}.mindmap{display:flex;align-items:flex-start;gap:36px;width:max-content;min-height:400px}.root-node,.phase-node,.task-node{background:white;border:1px solid #dce6dc;border-radius:12px;box-shadow:0 3px 9px #23412c0a;padding:13px 16px;min-width:200px}.root-node{background:#1c6849;color:white;border-color:#1c6849;min-width:220px}.root-node small{color:#bfe5cc}.mindmap-phase{display:flex;align-items:flex-start;gap:16px}.phase-node{min-width:210px;max-width:230px;cursor:pointer}.phase-node:hover{border-color:#73b48a}.task-branch{display:flex;flex-direction:column;gap:7px;border-left:2px solid #ccdfce;padding-left:17px}.task-node{font-size:11px;min-width:240px;max-width:270px;padding:9px 12px;cursor:pointer}.task-node:hover{border-color:#73b48a}.task-node .badge{margin-left:4px}.mindmap-phases{display:flex;flex-direction:column;gap:18px;border-left:2px solid #b7d6bf;padding-left:24px}.mindmap small{display:block;font-size:10px;margin-bottom:5px}.wiki-grid{display:grid;grid-template-columns:255px minmax(0,1fr);gap:15px}.wiki-menu{padding:9px}.wiki-item{display:block;width:100%;padding:10px 12px;border:0;background:transparent;text-align:left;border-radius:8px;font-size:12px;color:#637467}.wiki-item.active,.wiki-item:hover{background:#eaf2eb;color:#176746}.note{background:#eef5ed;border:1px solid #dcebdc;border-radius:10px;padding:14px;font-size:12px;line-height:1.55;color:#55705b}.warning{background:#fff6e5;border:1px solid #f2e4c9;color:#8b6c2f}.codebox{background:#192b23;border-radius:9px;padding:15px;color:#e5f6e8;font-family:monospace;font-size:11px;white-space:pre-wrap;word-break:break-all;line-height:1.6;max-height:370px;overflow:auto}.activity{display:flex;flex-direction:column}.activity-item{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid #edf0ed;font-size:12px}.activity-dot{width:8px;height:8px;flex:none;background:#53aa70;border-radius:50%;margin-top:5px}.activity-item time{color:#94a198;font-size:11px}.login-screen{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 80% 0%,#dceee0,transparent 34%),#f6f8f5;padding:20px}.login-card{width:min(410px,100%);padding:33px}.login-card h1{font-size:25px;letter-spacing:-.04em;margin:24px 0 6px}.login-card p{color:#7c8d80;font-size:13px;line-height:1.55;margin-bottom:26px}.modal-root{position:fixed;inset:0;z-index:20;background:#11221970;display:grid;place-items:center;padding:20px}.modal-root[hidden]{display:none}.dialog{background:white;border-radius:16px;box-shadow:0 25px 70px #122c1d40;width:min(590px,100%);max-height:90vh;overflow:auto;padding:24px}.dialog h2{margin:0 0 6px;font-size:18px;letter-spacing:-.02em}.dialog p{margin:0 0 20px;color:#829087;font-size:12px;line-height:1.5}.dialog .footer{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.dialog .close{float:right;border:0;background:transparent;color:#89958d;font-size:20px}.dialog textarea{min-height:120px}#toast{position:fixed;bottom:22px;right:22px;z-index:30;color:white;background:#243f2e;border-radius:9px;padding:11px 16px;font-size:12px;box-shadow:0 10px 24px #1e392941;opacity:0;transform:translateY(10px);transition:.2s;pointer-events:none}#toast.show{opacity:1;transform:none}.right-meta{display:flex;flex-direction:column;gap:11px}.mini-kv{display:flex;justify-content:space-between;gap:10px;font-size:12px;padding-bottom:10px;border-bottom:1px solid #edf0ed}.mini-kv span:first-child{color:#8a978e}.mini-kv span:last-child{font-weight:750}.pillbar{display:flex;gap:6px;background:#eef2ee;border-radius:9px;padding:4px}.pillbar button{border:0;background:transparent;color:#7f9183;border-radius:6px;padding:7px 10px;font-size:11px;font-weight:750}.pillbar button.active{background:white;color:#246f49;box-shadow:0 1px 4px #1f422015}@media(max-width:1000px){.app-shell{grid-template-columns:66px minmax(0,1fr)}.sidebar{padding:18px 8px}.brand span:not(.brandmark),.side-label,.nav a span:not(.ico),.nav button span:not(.ico),.help-card{display:none}.nav a,.nav button{justify-content:center;padding:11px}.brand{padding:0 8px}.two-col{grid-template-columns:1fr}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.app-shell{display:block}.sidebar{position:fixed;top:auto;bottom:0;z-index:10;width:100%;height:57px;flex-direction:row;padding:5px;background:#fff;border-top:1px solid #dfe7df;border-right:0;gap:0}.brand,.sidebar-bottom,.side-label{display:none}.sidebar section{width:100%}.nav{flex-direction:row;justify-content:space-around}.nav a,.nav button{flex:1}.main{padding-bottom:63px}.topbar{padding:0 18px;height:58px}.content{padding:22px 16px}.page-title{font-size:24px}.page-head{flex-direction:column}.grid,.stats,.wiki-grid{grid-template-columns:1fr}.kanban{grid-template-columns:repeat(4,260px)}.top-actions .btn.ghost{display:none}}

.field[hidden]{display:none}.dialog #ai-import-prompt{min-height:300px;max-height:45vh}.dialog #ai-import-status{display:flex;align-items:center;justify-content:space-between;gap:10px}
